代码之家  ›  专栏  ›  技术社区  ›  apokryfos

通过UI调用测试依赖项

  •  0
  • apokryfos  · 技术社区  · 7 年前

    我有以下测试结构:

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

    当我将其作为测试套件的一部分运行时,它工作得很好。

    然而,在PhpStorm中,如果我右键单击函数名,我会得到选项“Run‘testSameData’”,当我单击该选项时,它会给出:

    此测试取决于“测试\测试数据”是否通过。

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

    1 回复  |  直到 7 年前
        1
  •  2
  •   Stratadox    7 年前

    @depends注释告诉phpunit,只有它所依赖的测试之前已经运行过,测试才能tun。

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

    充当dataProvider的方法需要返回一个数组数组,如下所示:

    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会将其本身视为一个测试用例,并且可能会警告缺少断言。