- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我被难住了。我已经阅读了很多在线帖子,但似乎找不到我正在寻找的解决方案。
我想要的是在循环中并行运行测试,这样一个测试生成数据,另一个测试消耗数据。
我发现传入的 ITestContext 对于在测试之间存储测试数据很有用。但是,当使用dependsOnMethod时,所有数据生成测试都会在第一个依赖方法运行之前运行。
有没有办法指定@Factory和@DataProvider的组合来实现我想要的?
public class DependencyTest1 {
private String value;
@DataProvider()
public static Object[][] DependencyTestProvider() {
return new Object[][] {
// Data passed into tests
{ "String1" },
{ "String2" },
};
}
@Factory(dataProvider = "DependencyTestProvider")
public DependencyTest1(String value) {
System.out.println("DataDependencyTest1 Constructor");
System.out.println("String: " + value);
this.value = value;
}
//*****************************************************************************
//*****************************************************************************
@Test(description = "Test Dependency Injection: Generate Test Data", groups = "unit")
public void Test_DependencyInjection_GenerateTestData(ITestContext context, Method method) throws Exception {
System.out.println("Test Name: " + method.getName());
System.out.println("Create Test Data");
System.out.println("String: " + value);
System.out.println("Add data to current test context");
context.setAttribute("value", value);
}
//*****************************************************************************
//*****************************************************************************
@Test(description = "Test Dependency Injection: Extract Test Data",groups = "unit", dependsOnMethods = "Test_DependencyInjection_GenerateTestData")
public void Test_DependencyInjection_ExtractData(ITestContext context, Method method) {
System.out.println("Test Name: " + method.getName());
System.out.println("Extract data from test context");
String value = (String) context.getAttribute("value");
System.out.println("String: " + value);
}
}
测试输出:
DataDependencyTest1 Constructor
String: Default test name
DataDependencyTest1 Constructor
String: String1
DataDependencyTest1 Constructor
String: String2
Test Name: Test_DependencyInjection_GenerateTestData
Create Create Test Data
String: String1
Add data to current test context
Test Name: Test_DependencyInjection_GenerateTestData
Create Create Test Data
String: String2
Add data to current test context
Test Name: Test_DependencyInjection_ExtractData
Extract data from test context
String: String2
Test Name: Test_DependencyInjection_ExtractData
Extract data from test context
String: String2
现在问题来了...
每次运行 _GenerateTestData()
测试方法时,测试都会运行 _ExtractData()
。但是,依赖性测试似乎只在循环的最后一次迭代上运行。
如何制作这样的测试序列:
Test_DependencyInjection_GenerateTestData -- using "String1"
Test_DependencyInjection_ExtractData -- using "String1"
Test_DependencyInjection_GenerateTestData -- using "String2"
Test_DependencyInjection_ExtractData -- using "String2"
最佳答案
将测试添加到单独的组中并将按实例分组设置为 true。这应该可以解决问题。
关于java - 取决于方法和@Factory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17409483/
我是一名优秀的程序员,十分优秀!