我似乎无法在任何地方找到这个问题的答案,但它可能就在我面前(通常是)。对于我的项目:使用 PHPUnit,我在多个文件中进行了许多测试,但有一些测试(故意)需要很长时间才能运行,因此默认情况下我将它们标记为“跳过”。我想要的是一种使用默认命令行指令运行所有测试(除了跳过的测试)的方法,但如果过滤器术语专门用于跳过的测试,则仅运行这些测试,(或者它们是包含在主运行中)并且忽略跳过的指令。如果我可以访问中使用的术语,我就可以实现这一点,--filter但我不知道这是否可能。我知道我可以使用测试套件,并且很可能必须切换到该范例,但如果可能不这样做,那么我更喜欢这样做,因为这意味着我可以在 99% 的时间使用默认测试命令每次都必须指定套房。作为参考,我将我的test命令作为别名(到project\vendor\bin\phpunit),这使得指令变得快速。不幸的是,设置一个@group值并在默认别名 ( project\vendor\bin\phpunit --exclude-group) 中使用该值,然后使用$ test --group不起作用(这两个参数相互抵消)。
1 回答
郎朗坤
TA贡献1921条经验 获得超9个赞
我想最简单的方法是将您的测试分成两个测试套件。当您在 XML 配置中设置defaultTestSuite
属性时,您不必在运行命令时指定测试套件test
。如果您想运行其他套件,可以使用该--testsuite
选项来实现。
这是一个精简的示例:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit defaultTestSuite="unit" /* ... */>
<testsuites>
<testsuite name="unit">
<directory>tests/Unit</directory>
</testsuite>
<testsuite name="functional">
<directory>tests/Functional</directory>
</testsuite>
</testsuites>
<!-- ... -->
</phpunit>
phpunit
将运行unit
测试套件phpunit --testsuite=functional
将运行functional
测试套件phpunit --testsuite=unit,functional
将运行两个测试套件
- 1 回答
- 0 关注
- 57 浏览
添加回答
举报
0/150
提交
取消