gpt4 book ai didi

phpunit - 如何有效拆分大型 phpunit 测试套件?

转载 作者:行者123 更新时间:2023-12-01 13:50:27 26 4
gpt4 key购买 nike

我使用 phpunit 的测试套件功能来组织我的测试。我这样做是为了以后能够并行运行测试。

对于不同的目录,这是相对直接的。例如,我可以按捆绑拆分测试套件。

<testsuite name="bundle-one">
<directory>tests/BundleOne</directory>
</testsuite>

<testsuite name="bundle-two">
<directory>tests/BundleTwo</directory>
</testsuite>

<testsuite name="bundle-three">
<directory>tests/BundleThree</directory>
</testsuite>

但现在我只有一个目录(服务),其中包含许多子文件夹。我可以手动为这个文件夹创建几个测试套件。但在我看来,这将是一个薄弱的解决方案。因为如果我提到其中的每个子文件夹并且文件夹被重命名或删除,测试套件很容易损坏。

我的想法是使用某种正则表达式来选择一系列子文件夹以包含在一个测试套件中,并选择另一范围的文件夹以包含在另一个测试套件中。

<testsuite name="services-AM">
<directory>tests/services/{A-M}</directory>
</testsuite>

<testsuite name="services-NZ">
<directory>tests/services/{A-M}</directory>
</testsuite>

我找不到关于我的想法的任何文档。有人对此有想法吗? :-)

最佳答案

一个更简单的解决方案可能是过滤您的测试:

# Only include test classes beginning with the letter A-M
phpunit --filter '/^[A-M]/'

# Only include test classes beginning with the letter N-Z
phpunit --filter '/^[N-Z]/'

假设您所有的测试类都以大写字母开头。

您需要进行试验才能获得均分。也就是说,如果您所有的测试都以 A-M 之间的字符开头,那么这将不起作用。

使用 PHPUnit 5.4.6 测试

关于phpunit - 如何有效拆分大型 phpunit 测试套件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32185842/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com