我有以下测试:
@RunWith(Parameterized.class)
@SpringBootTest
@ContextConfiguration(classes = MyConfiguration.class)
public class OrderPlacementCancelTest {
public static final int REQUESTS_PER_USER = 100;
@Parameterized.Parameter(0)
public String apiKey;
@Parameterized.Parameter(1)
public String secretKey;
@Parameterized.Parameter(2)
public String passPhrase;
@Parameterized.Parameter(3)
public String destination;
@Parameterized.Parameter(4)
public int index;
@Test
public void placeLimitAndThenCancel() throws InterruptedException, FieldNotFound, SessionNotFound, DoNotSend, IncorrectDataFormat, IncorrectTagValue, UnsupportedMessageType {
for (int i = 0; i < REQUESTS_PER_USER; i++) {
System.out.println("ITERATION_" + i);
}
}
@Parameterized.Parameters()
public static Collection<Object[]> data() {
return Arrays.asList(new Object[][]{
{"1", "1", "1", "1", 1},
{"1", "1", "1", "1", 1},
{"1", "1", "1", "1", 1},
{"1", "1", "1", "1", 1},
{"1", "1", "1", "1", 1},
});
}
}
我有以下跑步者:
public class ParallelRunner {
@Test
public void test() {
Class[] cls = {OrderPlacementCancelTest.class};
JUnitCore.runClasses(new ParallelComputer(false, true), cls);
}
}
我开始跑步,测试完成后我会查看日志。
我无法解释结果:
我明白了
ITERATION_0
- 5场比赛
...
ITERATION_5
- 55匹配
...
ITERATION_9
- 55匹配
...
ITERATION_10
- 5次匹配
...
ITERATION_50
- 5次匹配
...
ITERATION_70
- 5次匹配
...
ITERATION_98
- 5次匹配
ITERATION_99
- 5场比赛
每次迭代的预期结果100匹配。
您能解释一下这种行为以及修复方法吗?
答案 0 :(得分:1)
你的结果是对的(我认为)。
由于您并行运行ParallelComputer
方法,并且您的测试是参数化,因此生成的测试方法的数量是数组第一维中的元素数。在你的情况下,这个数字是5,这就是你看到的。
您发现ITERATION_5
55次这一事实是因为此字词匹配的是ITERATION_5
,ITERATION_50
,ITERATION_51
,...,{{1} }如同 11场比赛每次运行乘以5 运行等于55 。
您会看到所有单位数字迭代次数的效果,并且您对ITERATION_59
的搜索会确认该效果。
尝试对ITERATION_9
字词进行文字搜索以查找500个匹配项或搜索字词ITERATION_
(5之后的空格)应该为您提供5个匹配项。