我在我的 Laravel 10 项目上安装了 Laravel 模块。 我在 phpunit 中测试了许多设置来检测模块的测试,但 phpunit 找不到测试。
在 laravel 8 中,这个设置对我有用:
<coverage processUncoveredFiles="true">
<include>
<directory suffix="Test.php">./Modules/**/Tests/Unit/</directory>
<directory suffix="Test.php">./Modules/**/Tests/Feature/</directory>
</include>
</coverage>
但是在 Laravel 10 覆盖标签中会出错。
使用以下代码,测试也无法检测模块的测试:
<testsuite name="Module Tests">
<directory suffix="Test.php">./Modules/*/Tests</directory>
</testsuite>
或者
<testsuite name="Unit">
<directory>./Modules/**/Tests/Unit</directory>
</testsuite>
<testsuite name="Feature">
<directory>./Modules/**/Tests/Feature</directory>
</testsuite>
对于 Laravel 模块,您可以使用这种方法逐个指定测试套件
<testsuites>
<testsuite name="GlobalUnit">
<directory suffix="Test.php">./tests/Unit</directory>
</testsuite>
<testsuite name="GlobalFeature">
<directory suffix="Test.php">./tests/Feature</directory>
</testsuite>
<testsuite name="CoreModule">
<directory suffix="Test.php">./Modules/Core/Tests</directory>
</testsuite>
<testsuite name="UserModule">
<directory suffix="Test.php">./Modules/User/Tests</directory>
</testsuite>
</testsuites>
<coverage processUncoveredFiles="true">
<include>
<directory suffix=".php">./app</directory>
</include>
</coverage>
</phpunit>
或使用你的方法
<testsuite name="Unit">
<directory>./Modules/**/Tests/Unit</directory>
</testsuite>
<testsuite name="Feature">
<directory>./Modules/**/Tests/Feature</directory>
</testsuite>
<coverage processUncoveredFiles="true">
<include>
<directory suffix=".php">./app</directory>
</include>
</coverage>
在第二种方法中,后缀是 .PHP ,这将选择全部。