Symfony 简单 PHPUnit 退出代码 1,未显示错误

Posted

技术标签:

【中文标题】Symfony 简单 PHPUnit 退出代码 1,未显示错误【英文标题】:Symfony Simple PHPUnit Exit Code 1, No Errors Shown 【发布时间】:2020-03-19 05:17:24 【问题描述】:

我正在 travis ci 上运行一些 phpUnit 测试,它告诉我它正在以代码 1 退出...我已经在本地尝试过,并确认它正在以代码 1 退出。

问题是,它没有显示任何错误,没有警告,只是弃用。

这是输出

PHPUnit 8.3.5 by Sebastian Bergmann and contributors.

Testing Project Test Suite
...............................................................  63 / 118 ( 53%)
.......................................................         118 / 118 (100%)

Time: 51.24 seconds, Memory: 58.50 MB

OK (118 tests, 444 assertions)

Remaining indirect deprecation notices (13)

  1x: The "DAMA\DoctrineTestBundle\PHPUnit\PHPUnitListener" class implements "PHPUnit\Framework\TestListener" that is deprecated Use the `TestHook` interfaces instead.
    1x in DebugClassLoader::loadClass from Symfony\Component\Debug

  1x: The "DAMA\DoctrineTestBundle\PHPUnit\PHPUnitListener" class uses "PHPUnit\Framework\TestListenerDefaultImplementation" that is deprecated The `TestListener` interface is deprecated.
    1x in DebugClassLoader::loadClass from Symfony\Component\Debug

  1x: Using the "predis" type for cache "metadata_cache_driver" is deprecated since DoctrineBundle 1.12 and will be dropped in 2.0. Please use the "service" or "pool" types exclusively.
    1x in ActivityLogRepositoryTest::setUp from Tests\AppBundle\Repository

  1x: Using the "provider" type for cache "result_cache_driver" is deprecated since DoctrineBundle 1.12 and will be dropped in 2.0. Please use the "service" or "pool" types exclusively.
    1x in ActivityLogRepositoryTest::setUp from Tests\AppBundle\Repository

  1x: Using the "provider" type for cache "query_cache_driver" is deprecated since DoctrineBundle 1.12 and will be dropped in 2.0. Please use the "service" or "pool" types exclusively.
    1x in ActivityLogRepositoryTest::setUp from Tests\AppBundle\Repository

  1x: The child node "cache_provider" at path "doctrine.orm.entity_managers.default.query_cache_driver" is deprecated.
    1x in ActivityLogRepositoryTest::setUp from Tests\AppBundle\Repository

  1x: The child node "host" at path "doctrine.orm.entity_managers.default.metadata_cache_driver" is deprecated.
    1x in ActivityLogRepositoryTest::setUp from Tests\AppBundle\Repository

  1x: The child node "port" at path "doctrine.orm.entity_managers.default.metadata_cache_driver" is deprecated.
    1x in ActivityLogRepositoryTest::setUp from Tests\AppBundle\Repository

  1x: The child node "database" at path "doctrine.orm.entity_managers.default.metadata_cache_driver" is deprecated.
    1x in ActivityLogRepositoryTest::setUp from Tests\AppBundle\Repository

  1x: The child node "cache_provider" at path "doctrine.orm.entity_managers.default.result_cache_driver" is deprecated.
    1x in ActivityLogRepositoryTest::setUp from Tests\AppBundle\Repository

  1x: Using the element "deprecated" is deprecated for the service "Symfony\Bridge\Doctrine\RegistryInterface" which is defined as an alias in "/var/www/Shred/Symfony/vendor/doctrine/doctrine-bundle/DependencyInjection/../Resources/config/dbal.xml". The XmlFileLoader will raise an exception in Symfony 4.0, instead of silently ignoring unsupported elements.
    1x in ActivityLogRepositoryTest::setUp from Tests\AppBundle\Repository

  1x: Using the element "deprecated" is deprecated for the service "Doctrine\Bundle\DoctrineBundle\Registry" which is defined as an alias in "/var/www/Shred/Symfony/vendor/doctrine/doctrine-bundle/DependencyInjection/../Resources/config/dbal.xml". The XmlFileLoader will raise an exception in Symfony 4.0, instead of silently ignoring unsupported elements.
    1x in ActivityLogRepositoryTest::setUp from Tests\AppBundle\Repository

  1x: Using the element "deprecated" is deprecated for the service "Doctrine\Common\Persistence\ObjectManager" which is defined as an alias in "/var/www/Shred/Symfony/vendor/doctrine/doctrine-bundle/DependencyInjection/../Resources/config/orm.xml". The XmlFileLoader will raise an exception in Symfony 4.0, instead of silently ignoring unsupported elements.
    1x in ActivityLogRepositoryTest::setUp from Tests\AppBundle\Repository

Other deprecation notices (118)

  118x: Creating Doctrine\ORM\Mapping\UnderscoreNamingStrategy without making it number aware is deprecated and will be removed in Doctrine ORM 3.0.
    7x in PushLogRepositoryTest::setUp from Tests\AppBundle\Repository
    7x in UserAccountManagerTest::setUp from Tests\AppBundle\Service
    7x in UserAccountMergerTest::setUp from Tests\AppBundle\Service
    6x in GlobalFunctionsTest::tearDown from Tests\AppBundle\Util
    5x in ActivityLogRepositoryTest::setUp from Tests\AppBundle\Repository
    4x in ExerciseRepositoryTest::setUp from Tests\AppBundle\Repository
    3x in ExerciseTrackingRepositoryTest::setUp from Tests\AppBundle\Repository
    3x in FollowingRepositoryRepositoryTest::setUp from Tests\AppBundle\Repository
    2x in QuoteRepositoryTest::setUp from Tests\AppBundle\Repository
    2x in EventLogRepositoryTest::setUp from Tests\AppBundle\Repository
    2x in ActivityRepositoryTest::setUp from Tests\AppBundle\Repository
    1x in UserSubscriptionRepositoryTest::it_should_return_the_latest_non_expired_subscription from Tests\AppBundle\Repository
    1x in WorkoutPathRepositoryTest::it_should_only_get_workout_paths_that_match_the_type_and_are_greater_than_number from Tests\AppBundle\Repository
    1x in UserSubscriptionRepositoryTest::it_should_filter_if_canceled_flag_or_date_is_set from Tests\AppBundle\Repository
    1x in UserSubscriptionRepositoryTest::it_should_support_only_getting_the_product_id_and_date from Tests\AppBundle\Repository
    1x in UserSubscriptionRepositoryTest::it_should_support_getting_the_subscription_even_if_the_expires_date_has_passed from Tests\AppBundle\Repository
    1x in UserWeightTrackingLogRepositoryTest::it_provides_the_users_workout_times from Tests\AppBundle\Repository
    1x in WorkoutBuddyConnectionRepositoryTest::it_should_get_the_users_workout_team from Tests\AppBundle\Repository
    1x in WorkoutBuddyConnectionRepositoryTest::it_should_return_null_if_the_user_is_not_part_of_a_team from Tests\AppBundle\Repository
    1x in WorkoutMessageRepositoryTest::it_should_filter_by_coaching_type from Tests\AppBundle\Repository
    1x in WorkoutMessageRepositoryTest::it_should_filter_by_random_status from Tests\AppBundle\Repository
    1x in WorkoutMessageRepositoryTest::it_should_filter_by_a_specific_workout_number from Tests\AppBundle\Repository
    1x in WorkoutMessageRepositoryTest::it_random_should_take_precedence_over_a_workout_number from Tests\AppBundle\Repository
    1x in WorkoutPathRepositoryTest::it_should_omit_workout_paths_of_the_wrong_type_with_valid_number from Tests\AppBundle\Repository
    1x in WorkoutPathRepositoryTest::it_should_omit_workout_paths_lower_than_the_given_number from Tests\AppBundle\Repository
    1x in WorkoutRepositoryTest::it_should_respect_the_search_key_when_getting_workouts from Tests\AppBundle\Repository
    1x in WorkoutPathRepositoryTest::it_should_only_find_paths_based_on_split_types_and_workout_types from Tests\AppBundle\Repository
    1x in WorkoutRepositoryTest::it_should_find_the_active_workout_without_any_equipment from Tests\AppBundle\Repository
    1x in GlobalFunctionsTest::it_should_change_the_parameters_to_match_the_workout_if_passed_in_and_not_long_cardio_or_gym_levels from Tests\AppBundle\Util
    1x in GlobalFunctionsTest::it_should_return_a_shred_matching_the_passed_parameters from Tests\AppBundle\Util
    1x in TopPerformersBuilderTest::it_should_build_the_category_response from Tests\AppBundle\Service
    1x in WorkoutRepositoryTest::it_should_filter_based_off_of_the_workout_id from Tests\AppBundle\Repository
    1x in WorkoutRepositoryTest::it_should_filter_on_recommended_if_not_body_weight_level from Tests\AppBundle\Repository
    1x in WorkoutRepositoryTest::it_should_filter_on_equipment from Tests\AppBundle\Repository
    1x in WorkoutRepositoryTest::it_should_filter_on_muscle_groups from Tests\AppBundle\Repository
    1x in WorkoutRepositoryTest::it_should_return_zero_results_when_there_is_no_workouts from Tests\AppBundle\Repository
    1x in WorkoutRepositoryTest::it_should_find_the_active_workouts_that_do_no_require_premium_equipment from Tests\AppBundle\Repository
    1x in WorkoutRepositoryTest::it_should_find_the_active_workout_matching_intensity_and_level from Tests\AppBundle\Repository
    1x in UserRepositoryTest::it_should_find_users_for_the_global_view from Tests\AppBundle\Repository
    1x in WorkoutRepositoryTest::it_should_respect_the_limit_and_offset from Tests\AppBundle\Repository
    1x in WorkoutRepositoryTest::it_should_get_the_workouts from Tests\AppBundle\Repository
    1x in WorkoutRepositoryTest::it_should_filter_the_count_by_name_or_display_name from Tests\AppBundle\Repository
    1x in UserRepositoryTest::it_should_get_the_followers_of_a_user from Tests\AppBundle\Repository
    1x in UserRepositoryTest::it_should_track_progress_based_on_the_period from Tests\AppBundle\Repository
    1x in UserRepositoryTest::it_should_find_the_user_by_name_email_or_facebook_id from Tests\AppBundle\Repository
    1x in UserProgressRepositoryTest::it_should_get_the_deleted_global_accoplishments from Tests\AppBundle\Repository
    1x in UserProgressRepositoryTest::it_should_get_the_live_accomplishments from Tests\AppBundle\Repository
    1x in UserProgressRepositoryTest::it_should_get_changed_accoplishments from Tests\AppBundle\Repository
    1x in UserProgressRepositoryTest::it_should_get_v3_team_global_accomplishments from Tests\AppBundle\Repository
    1x in UserProgressRepositoryTest::it_should_get_v3_global_accomplishments from Tests\AppBundle\Repository
    1x in UserProgressRepositoryTest::it_should_get_the_team_global_accomplishments from Tests\AppBundle\Repository
    1x in UserProgressRepositoryTest::it_should_get_the_deleted_team_accomplishments from Tests\AppBundle\Repository
    1x in UserProgressRepositoryTest::it_should_get_the_global_accomplishments from Tests\AppBundle\Repository
    1x in UserProgressRepositoryTest::it_should_get_the_users_last_progress from Tests\AppBundle\Repository
    1x in UserProgressRepositoryTest::it_should_get_the_date_of_the_users_first_workout from Tests\AppBundle\Repository
    1x in UserProgressRepositoryTest::it_should_get_the_count_of_deleted_or_non_deleted_progresses_by_workout_and_program from Tests\AppBundle\Repository
    1x in PopularActivityRepositoryTest::setUp from Tests\AppBundle\Repository
    1x in MuscleGroupRepositoryTest::setUp from Tests\AppBundle\Repository
    1x in GlobalTrackingRepositoryTest::setUp from Tests\AppBundle\Repository
    1x in ExerciseForCircuitRepositoryTest::setUp from Tests\AppBundle\Repository
    1x in ExerciseAlternatingRepositoryTest::setUp from Tests\AppBundle\Repository
    1x in UserProgressRepositoryTest::it_should_get_live_grouped_accomplishments from Tests\AppBundle\Repository
    1x in UserProgressRepositoryTest::it_should_get_the_users_first_progress from Tests\AppBundle\Repository
    1x in UserRepositoryTest::it_should_get_the_users_progress_by_the_addition_type from Tests\AppBundle\Repository
    1x in UserRepositoryTest::it_returns_deleted_users from Tests\AppBundle\Repository
    1x in UserRepositoryTest::it_should_get_matching_progess_within_last_half_hour_if_trigger_is_false from Tests\AppBundle\Repository
    1x in UserRepositoryTest::it_should_filter_progress_by_the_user from Tests\AppBundle\Repository
    1x in UserRepositoryTest::it_should_return_the_user_quantity_in_a_workout_team from Tests\AppBundle\Repository
    1x in UserRepositoryTest::it_returns_an_users_trial_and_access_info_if_it_exists from Tests\AppBundle\Repository
    1x in UserRepositoryTest::it_can_get_base_field_collection_for_multiple_users_and_filter_hidden_users from Tests\AppBundle\Repository
    1x in UserRepositoryTest::it_returns_an_users_base_field_collection_if_it_exists from Tests\AppBundle\Repository
    1x in UserProgressRepositoryTest::it_should_get_the_date_of_the_users_oldest_workout from Tests\AppBundle\Repository
    1x in UserProgressRepositoryTest::it_should_get_the_workout_shreds_quantity_for_a_user from Tests\AppBundle\Repository
    1x in UserProgressRepositoryTest::it_should_get_all_workout_team_accomplishments from Tests\AppBundle\Repository
    1x in UserProgressRepositoryTest::it_should_get_completed_workouts_without_long_cardio from Tests\AppBundle\Repository
    1x in UserProgressRepositoryTest::it_should_get_the_completed_workouts from Tests\AppBundle\Repository
    1x in UserProgressRepositoryTest::it_should_get_progress_by_workout from Tests\AppBundle\Repository
    1x in UserProgressRepositoryTest::it_should_get_the_team_progress_for_the_week from Tests\AppBundle\Repository
    1x in UserProgressRepositoryTest::it_should_get_the_users_week_progress_with_optional_modifier from Tests\AppBundle\Repository
    1x in UserProgressRepositoryTest::it_should_get_normal_workout_progress from Tests\AppBundle\Repository
    1x in GlobalFunctionsTest::it_should_change_the_intensity_and_level_if_a_workout_is_passed_and_the_level_is_a_gym_level from Tests\AppBundle\Util

我在这里没有看到什么吗? 我将如何调试它返回退出代码 1 的原因?

【问题讨论】:

这里没有太多要调试的地方。如果绝对没有错误(或者您将其设置为忽略),PHPUnit 仅返回 0。这也没什么好担心的,你没有实际的错误。 【参考方案1】:

问题可能在于您如何配置 PhpunitBridge 处理弃用。见:https://symfony.com/doc/current/components/phpunit_bridge.html#making-tests-fail

默认情况下,任何非旧标签或任何非@silenced 弃用通知都会导致测试失败。

您可以修复这些弃用或将SYMFONY_DEPRECATIONS_HELPER 设置为适合您的级别。

【讨论】:

当然:face_with_rolling_eyes:,禁用弃用警告现在将解决代码使用一些弃用的主要问题......

以上是关于Symfony 简单 PHPUnit 退出代码 1,未显示错误的主要内容,如果未能解决你的问题,请参考以下文章

Symfony3.4:PHPUnit并且没有可用的代码覆盖驱动程序[关闭]

如何使用 phpunit 在 Symfony 中测试控制器方法?

以编程方式对用户进行身份验证以进行 PhpUnit 功能测试 - 不受 Doctrine 管理 - Symfony 4.3

Symfony 5 Phpunit 未定义方法

应该将 phpunit 或石灰与 symfony 一起使用吗? [关闭]

Symfony:如何正确地从phpunit / phpunit切换到phpunit桥