有没有简单的方法来反转测试?

问题描述 投票:0回答:1

假设您编写了一个失败的测试来利用错误。您希望将其推送到上游,然后创建一个关于修复代码以便测试通过的故事。然而,运行所有测试的管道阻止了这种情况。

我想出了一个解决方案:将测试添加到一个组中,然后编辑

phpunit.xml
以排除该组,使管道跳过该测试。解决 bug 后,您只需从排除组中删除测试即可。

这里的一个问题是最后一步可能会被忘记。无论测试是否通过,管道都会通过。

我认为解决这个问题的方法是我们期望它失败,而不是排除测试。有没有一种方法可以配置

phpunit.xml
,使属于特定组的所有测试预计至少会失败一个断言?我查看了文档,但没有找到任何内容。注释也是如此。解决方案是如果有像
@expectToFail
这样的注释,但我也没有找到类似的东西。

也许反转测试不是正确的方法。但要写一个我想做的事情的简短摘要,而不假设任何最好的方法。

  1. 我应该能够编写一个不能使管道失败的失败测试。
  2. 如果代码被修改以使 (1) 中的测试通过而无需对项目进行任何其他更改,则管道必须失败。
  3. 当(2)发生时,必须有一个非常简单的方法来反转它,以便当测试失败时管道必须失败,并且当测试通过时不得失败。

如果可能,我想在不更改测试代码的情况下执行此操作,例如手动将

assertFalse
更改为
assertTrue

php unit-testing phpunit tdd
1个回答
0
投票

您可以将测试标记为不完整(https://docs.phpunit.de/en/10.3/writing-tests-for-phpunit.html#incomplete-tests):

$this->markTestIncomplete(
    'This test has not been implemented yet.',
);

测试将通过,但会生成警告。

© www.soinside.com 2019 - 2024. All rights reserved.