【问题标题】:CodeShip How to run tests that shows warnings instead of fails the buildCodeShip 如何运行显示警告而不是构建失败的测试
【发布时间】:2017-01-23 20:27:51
【问题描述】:

我们正在使用 PHPUnit,并且正在运行一系列集成测试来测试我们的 3rd 方 API,我们希望它们在 Codeship 中失败时显示警告,但不要阻止构建,因为我们真的无法控制他们。这甚至可能吗?我们目前正在做的是将所有失败的集成测试标记为不完整

trait IntegrationTestTrait
{
    protected function onNotSuccessfulTest(Exception $e)
    {
        $this->markTestIncomplete("This test failed for the following       reason " . $e->getMessage());
    }
}

但这并没有真正起作用,因为没有人真正关心未完成测试。有谁知道是否有任何东西比 incomplete 更强大但不会使我们可以使用的整个构建失败?

【问题讨论】:

  • 如果您运行的命令的退出代码不为零,Codeship 会将步骤标记为失败。因此,只要程序以零退出代码退出,您就可以获得任何您想要的输出。我不建议将其用于运行测试,但您也可以使用 test_command || true 强制执行成功步骤。例如,您可以在仅测试外部 API 的单独步骤中使用它。

标签: php continuous-integration phpunit integration-testing codeship


【解决方案1】:

有没有人知道有没有比不完整的更强大但是 不会使我们可以使用的整个构建失败?

如果您正在观看 PHPUnit 测试,但希望它继续进行,您可以发出带有红色背景的警告以引起您的注意。

在单元测试中:

echo "\e[41;97m" . "Warning Text" . "\e[0m\n";

这些是打开颜色的命令行转义序列。 41;97 是红色背景,0m 清除它。

【讨论】:

    猜你喜欢
    • 2020-06-19
    • 1970-01-01
    • 1970-01-01
    • 2017-10-20
    • 2018-07-04
    • 1970-01-01
    • 1970-01-01
    • 2017-08-20
    • 1970-01-01
    相关资源
    最近更新 更多