我有以下测试结构:
import { Component, OnInit } from '@angular/core';
//import * as $ from "jquery";
declare var $: any;
@Component({
selector: 'app-menu',
templateUrl: './menu.component.html',
styleUrls: ['./menu.component.scss']
})
export class MenuComponent implements OnInit {
constructor() {
}
ngOnInit() {
$(document).ready(function(){
$(".owl-carousel").owlCarousel();
});
$('#myDropdown').on('hide.bs.dropdown', function () {
return false;
});
}
closeNav() {
document.getElementById("mySidenav").style.width = "0";
}
}
当我将其作为测试套件的一部分运行时,这很好用。
在PhpStorm中,如果我右键单击功能名称,我会得到选项"运行' testSameData'"当我点击它时它给了我:
此测试取决于" Tests \ testData"通过。
是否有(内置或插件)方式配置PhpStorm以自动运行测试的依赖关系,如果它被要求将其作为单独的函数运行?
答案 0 :(得分:2)
@depends注释告诉phpunit测试只能在之前运行的测试中进行调整。
在您的情况下,您似乎需要的是数据提供者: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会将其视为一个测试用例,并且可能会警告缺少断言。