通过 UI 调用测试依赖

Call test dependency via UI

我有以下测试结构:

public function testData() {
   $data = 10;
   // Test using $data
   return $data;
}
/**
 * @depends testData
 */
public function testSameData($data) {
    // More tests using data
}

当我 运行 它作为我的测试套件的一部分时,它工作正常。

但是,在 PhpStorm 中,如果我右键单击函数名称,我会得到选项 "Run 'testSameData'",当我单击它时,它会给我:

This test depends on "Tests\testData" to pass.

是否有(内置或插件)方法将 PhpStorm 配置为自动 运行 测试的依赖项,如果它被要求 运行 它作为一个单独的函数?

@depends 注释告诉 phpunit 测试只有在其依赖的测试之前有 运行 时才能 tun。

在你的情况下,你需要的似乎是一个数据提供者:https://phpunit.de/manual/current/en/writing-tests-for-phpunit.html#writing-tests-for-phpunit.data-providers

作为数据提供者的方法需要return一个数组数组,像这样:

public function myTestData() : array
{
    return [
        [10]
    ]
}

/**
 * @dataProvider myTestData
 */
public function testSameData($data) 
{
    // More tests using data
}

请注意,数据提供程序将运行 测试外部数组中的每个数组条目。这样一来,您可以使用不同的数据集多次进行一次测试 运行。

可选地,这些数据集可以命名为:

public function myTestData() : array
{
    return [
        'Ten' => [10],
        'Five' => [5],
    ]
}

编辑:注意我已经更改了数据提供者的名称:如果它以 test 开头,phpunit 会认为它本身就是一个测试用例,并且可能会警告缺少断言。