如何表明phpunit 该类是测试类?/** @test */注释似乎仅适用test于名称中未附加字符串的方法那么如何在不将test字符串附加到其名称的情况下运行测试类呢?这是课程<?phpnamespace Tests\Feature;use Tests\TestCase;/** @test */class RepoPost extends TestCase{ /** @test */ public function postSave() { $this->assertTrue(true); } /** @test */ public function anotherOne() { $this->assertTrue(true); }}跑步vendor/bin/phpunit --filter RepoPost输出未执行任何测试!更新这是我的phpunit.xml配置<?xml version="1.0" encoding="UTF-8"?><phpunit backupGlobals="false" backupStaticAttributes="false" bootstrap="tests/bootstrap.php" colors="true" processIsolation="false" stopOnFailure="false"> <testsuites> <testsuite name="Feature"> <directory>./tests/Feature</directory> </testsuite> </testsuites> <php> <server name="APP_ENV" value="testing"/> </php></phpunit>正如@Alister指出的那样,虽然可以通过完整路径运行该类vendor/bin/phpunit tests/Feature/RepoPost.php对每个课程一遍又一遍地执行此操作并不方便,尤其是作为 CI 过程的一部分理想情况下,该课程将在完整的测试套件中运行vendor/bin/phpunit
3 回答
汪汪一只猫
TA贡献1898条经验 获得超8个赞
在您的 phpunit.xml 中,将 suffix 属性添加到标签中。该示例将运行所有.php文件,如果您在那里没有任何 TestCase 类/文件,这可能会变得有风险,这就是为什么它的约定使用Test.
<testsuite name="Feature">
<directory suffix=".php">./tests/Feature</directory>
</testsuite>
希望这可以帮助!
慕沐林林
TA贡献2016条经验 获得超9个赞
它不读取类级别的/** @test */注释,但默认的 phpunit.xml 文件也具有使用文件名后缀定义的测试套件:
<testsuites>
<testsuite name="default">
<directory suffix="Test.php">tests</directory>
</testsuite>
</testsuites>
如果您在特定文件上运行 phpunit:vendor/bin/phpunit tests/RepoPost.php它会运行测试,即使文件名与后缀不匹配。
慕容708150
TA贡献1831条经验 获得超4个赞
您可以使用后缀:
<testsuite name="Feature"> <directory suffix="Test.php">./tests/Feature</directory> </testsuite>
然后你应该将你的文件重命名为 RepoPostTest.php
- 3 回答
- 0 关注
- 117 浏览
添加回答
举报
0/150
提交
取消