gpt4 book ai didi

名称中没有 "test"的 phpunit 运行类

转载 作者:行者123 更新时间:2023-12-04 16:45:01 25 4
gpt4 key购买 nike

如何向 phpunit 表明该类是测试类?

/** @test */ 注释似乎只适用于名称中没有附加 test 字符串的方法

那么如何在不将 test 字符串附加到其名称的情况下运行测试类?

这是类

<?php

namespace 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

输出

No tests executed!

更新

这是我的 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

最佳答案

在您的 phpunit.xml 中,将后缀属性添加到标签中。该示例将运行所有 .php 文件,如果其中没有任何 TestCase 类/文件,这可能会变得有风险,这就是为什么它的约定为类添加 Test 后缀。

<testsuite name="Feature">
<directory suffix=".php">./tests/Feature</directory>
</testsuite>

希望这对您有所帮助!

关于名称中没有 "test"的 phpunit 运行类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58068536/

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