phpunit - 当有大量异常时,为什么 phpunit 是绿色的?

标签 phpunit

当有大量异常时,为什么 phpunit 是绿色的?

这是 travis 中的一个示例作业:https://travis-ci.org/ConnectCorp/nexmo-client/jobs/79275172

Strict standards: Declaration of Nexmo\Tests\Service\TestServiceTrait::exec() should be compatible with Nexmo\Service\Service::exec($params, $method = 'GET') in /home/travis/build/ConnectCorp/nexmo-client/tests/Service/VoiceTest.php on line 42
Call Stack:
    0.0013     415584   1. {main}() /home/travis/.phpenv/versions/5.4.37/bin/phpunit:0
    0.0209    1038200   2. PHPUnit_TextUI_Command::main() /home/travis/.phpenv/versions/5.4.37/bin/phpunit:722
    0.0209    1044680   3. PHPUnit_TextUI_Command->run() phar:///home/travis/.phpenv/versions/5.4.37/bin/phpunit/phpunit/TextUI/Command.php:104
    0.0209    1045112   4. PHPUnit_TextUI_Command->handleArguments() phar:///home/travis/.phpenv/versions/5.4.37/bin/phpunit/phpunit/TextUI/Command.php:114
    0.0281    1812016   5. PHPUnit_Util_Configuration->getTestSuiteConfiguration() phar:///home/travis/.phpenv/versions/5.4.37/bin/phpunit/phpunit/TextUI/Command.php:664
    0.0281    1812928   6. PHPUnit_Util_Configuration->getTestSuite() phar:///home/travis/.phpenv/versions/5.4.37/bin/phpunit/phpunit/Util/Configuration.php:814
    0.0318    2063368   7. PHPUnit_Framework_TestSuite->addTestFiles() phar:///home/travis/.phpenv/versions/5.4.37/bin/phpunit/phpunit/Util/Configuration.php:901
    0.1145    6533504   8. PHPUnit_Framework_TestSuite->addTestFile() /home/travis/build/ConnectCorp/nexmo-client/vendor/phpunit/phpunit/src/Framework/TestSuite.php:403
    0.1145    6571744   9. PHPUnit_Util_Fileloader::checkAndLoad() /home/travis/build/ConnectCorp/nexmo-client/vendor/phpunit/phpunit/src/Framework/TestSuite.php:331
    0.1146    6571880  10. PHPUnit_Util_Fileloader::load() phar:///home/travis/.phpenv/versions/5.4.37/bin/phpunit/phpunit/Util/Fileloader.php:42
    0.1148    6681536  11. include_once('/home/travis/build/ConnectCorp/nexmo-client/tests/Service/VoiceTest.php') phar:///home/travis/.phpenv/versions/5.4.37/bin/phpunit/phpunit/Util/Fileloader.php:58
PHPUnit 4.8.6 by Sebastian Bergmann and contributors.
...............................................................  63 / 117 ( 53%)
......................................................
Time: 511 ms, Memory: 13.00Mb
OK (117 tests, 210 assertions)

https://travis-ci.org/ConnectCorp/nexmo-client/jobs/79275172

我预计它会失败,并且 travis 报告构建失败,但它只是默默地通过了。我是否缺少任何 phpunit 配置选项?

当前 phpunit 配置是这样的:

<?xml version="1.0" encoding="utf-8"?>
<phpunit colors="true"
         bootstrap="./vendor/autoload.php"
         convertErrorsToExceptions="true"
         convertNoticesToExceptions="true"
         convertWarningsToExceptions="true"
         stopOnFailure="false">
    <testsuites>
        <testsuite name="Nexmo Test Suite">
            <directory>./tests/</directory>
        </testsuite>
    </testsuites>
    <filter>
        <blacklist>
            <directory suffix=".php">vendor/*</directory>
        </blacklist>
    </filter>
</phpunit>

最佳答案

即使出现错误,但实际上没有测试失败,因此 phpunit 将返回成功代码。

在运行测试之前,phpunit 首先加载并解析 *Test.php 文件,这就是错误的来源,而不是测试方法本身。

将配置选项 stopOnFailure="false" 更改为 stopOnFailure="true"stopOnError="true" 应该会使此任务失败.

来自documentation :

--stop-on-error Stop execution upon first error.

--stop-on-failure Stop execution upon first error or failure.

编辑

实际上,只是在玩这个,因为它是一个通知,在测试实际开始之前这些标志不会有任何效果。

关于phpunit - 当有大量异常时,为什么 phpunit 是绿色的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35888925/

相关文章:

php - 使用 Mockery 模拟在另一个静态方法中调用的静态方法

phpunit - 如何在 phpunit 中为调用 mysql 的类编写单元测试?

php - 如何多次运行 php 单元并连接覆盖率报告?

即使内存限制为 -1,phpdbg/phpunit 也会引发错误

PHPUnit 不读取配置文件?

phpunit - PHPUnit 8.4 的 PhpStorm 给出异常 Uncaught PHPUnit\Runner\Exception class ... 无法找到

php - "Using $this when not in object context"出现在 Silex/phpunit 案例中

php - 如何使用 Ant 运行 PHPUnit 3.7?

php - 无法让 PHPunit 工作

php - Laravel 中的单元测试 : Error when setting the Currently Authenticated User