当输入来自多个文件时如何使用参数化 junit?
how to use parameterized junit when input is from several files?
我以前用Parameterized
junit。
我有两个文件,每个文件都有一个长列表。
说
file_a
file_b
我将两个大列表加载到内存中,并在不同的测试中比较了每一行。
不幸的是,列表变得太大了,在保存到文件之前,我遇到了内存问题,无法将其解析为 json。
这就是我将每个长列表拆分为较小文件的原因。说
file_a_1
file_a_2
file_a_3
和
file_b_1
file_b_2
file_b_3
当每个列表分发到几个文件时,我如何仍然使用 parameterized junit
基础架构和语法来比较每个相应的列表项?
我试过:
@Test
public void compareNewResponseToBaselineReturnsNoLargeDifferences() throws IOException {
E2EResultShort baseLineList = routingResponseShortRepository.getBaseLine(chunkId);
E2EResultShort freshRunList = routingResponseShortRepository.getLatestResponse(chunkId);
??? how do I iterate over differet `i` for each test ??
List<String> testFailureMessages = alternativeShortTotalChecker.checkAllAlternativesShort(baseLine.get(i), freshRun.get(i));
assertThat("testFailureMessages should be empty", String.join("", testFailureMessages), equalTo(""));
assertThat("error messages should be null", freshRoutingResponse.regression_error, is(nullValue()));
}
不幸的是你不能,因为 Parameterized
跑步者需要在测试开始时知道所有参数。
我以前用Parameterized
junit。
我有两个文件,每个文件都有一个长列表。
说
file_a
file_b
我将两个大列表加载到内存中,并在不同的测试中比较了每一行。
不幸的是,列表变得太大了,在保存到文件之前,我遇到了内存问题,无法将其解析为 json。
这就是我将每个长列表拆分为较小文件的原因。说
file_a_1
file_a_2
file_a_3
和
file_b_1
file_b_2
file_b_3
当每个列表分发到几个文件时,我如何仍然使用 parameterized junit
基础架构和语法来比较每个相应的列表项?
我试过:
@Test
public void compareNewResponseToBaselineReturnsNoLargeDifferences() throws IOException {
E2EResultShort baseLineList = routingResponseShortRepository.getBaseLine(chunkId);
E2EResultShort freshRunList = routingResponseShortRepository.getLatestResponse(chunkId);
??? how do I iterate over differet `i` for each test ??
List<String> testFailureMessages = alternativeShortTotalChecker.checkAllAlternativesShort(baseLine.get(i), freshRun.get(i));
assertThat("testFailureMessages should be empty", String.join("", testFailureMessages), equalTo(""));
assertThat("error messages should be null", freshRoutingResponse.regression_error, is(nullValue()));
}
不幸的是你不能,因为 Parameterized
跑步者需要在测试开始时知道所有参数。