PHPUnit:在 TestCase 方法中访问过滤器术语
PHPUnit: Accessing the filter term within a TestCase method
我似乎无法在任何地方找到这个问题的答案,但它可能就在我面前(通常是)。
对于我的项目:使用 PHPUnit,我在几个文件中进行了很多测试,但是有一些测试(故意)需要很长时间才能完成 运行,所以我将它们标记为 'skipped' 默认。
我想要的是 运行 我的所有测试(除了跳过的测试)使用默认命令行指令的方法,但是如果过滤器术语专门用于跳过的测试,那么只有这些测试是 运行,(或者它们包含在主要 运行 中)并且跳过的指令被忽略。
如果我可以访问 --filter
中使用的术语,我就可以做到这一点,但我不知道这是否可行。
我知道我可以使用测试套件并且很可能必须切换到该范例,但如果可能的话,那么我更愿意这样做,因为这意味着我可以使用默认测试命令 99 % 的时间,而不是每次都必须指定套件。
作为参考,我有我的 test
命令作为别名(到 project\vendor\bin\phpunit),这有助于快速指令。
不幸的是,设置 @group
值并在默认别名 ( project\vendor\bin\phpunit --exclude-group
) 中使用它,然后使用 $ test --group
不起作用(这两个参数相互抵消) .
我想最简单的方法是将测试分成两个测试套件。当您在 XML 配置中设置 defaultTestSuite
属性时,您不必在 运行 执行 test
命令时指定测试套件。如果你想 运行 其他套件,你可以使用 --testsuite
选项。
这是一个 stripped-down 示例:
<?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
将 运行 两个测试套件
我似乎无法在任何地方找到这个问题的答案,但它可能就在我面前(通常是)。
对于我的项目:使用 PHPUnit,我在几个文件中进行了很多测试,但是有一些测试(故意)需要很长时间才能完成 运行,所以我将它们标记为 'skipped' 默认。
我想要的是 运行 我的所有测试(除了跳过的测试)使用默认命令行指令的方法,但是如果过滤器术语专门用于跳过的测试,那么只有这些测试是 运行,(或者它们包含在主要 运行 中)并且跳过的指令被忽略。
如果我可以访问 --filter
中使用的术语,我就可以做到这一点,但我不知道这是否可行。
我知道我可以使用测试套件并且很可能必须切换到该范例,但如果可能的话,那么我更愿意这样做,因为这意味着我可以使用默认测试命令 99 % 的时间,而不是每次都必须指定套件。
作为参考,我有我的 test
命令作为别名(到 project\vendor\bin\phpunit),这有助于快速指令。
不幸的是,设置 @group
值并在默认别名 ( project\vendor\bin\phpunit --exclude-group
) 中使用它,然后使用 $ test --group
不起作用(这两个参数相互抵消) .
我想最简单的方法是将测试分成两个测试套件。当您在 XML 配置中设置 defaultTestSuite
属性时,您不必在 运行 执行 test
命令时指定测试套件。如果你想 运行 其他套件,你可以使用 --testsuite
选项。
这是一个 stripped-down 示例:
<?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
将 运行 两个测试套件