我必须做以下事情:
我有一个Junit测试,它基本上是基于数值计算。我必须用五种不同的输入来运行这个测试。我在这里的输入不是那么复杂的JSON文件。此外,测试将从常见的Config文件(也是JSON文件)读取配置数据,即从该配置文件中设置的输入对于所有五个测试都是相同的。
一般配置文件中的一个参数是whichTestsTobeRun:[1,4,5],例如:所以基本上可以配置哪些测试将运行。它还有一些其他输入参数,比如是否生成日志文件(真/假)等等。
所以我想做的是,首先从配置JSON数据中读取参数,通过这些参数我将知道要运行哪些测试,以及输入参数方面的其他有用信息。之后,我将读取Test特定的JSON文件,然后根据这些输入参数(配置参数+测试特定参数)运行测试。
有人可以指导我如何实现这一目标?是否可以使用参数化的Junit类?如果是,那么我可以在那里读取/设置参数吗?我的意思是通过它做所有这些是一个很好的因素吗?如果没有,我可以使用哪个其他框架?
Pl注意我已经阅读了类似的帖子,但是找不到像我这样的场景,例如选择从配置文件中运行哪些测试。例如。
答案 0 :(得分:1)
正如你已经在JUnit中指出parameterized tests我会去找他们。像下面这样的东西应该做你想要的(从提供的链接中获取和改编)。
@RunWith(Parameterized.class)
public class FooTest {
@Parameters
public static Collection<TestData> data() {
Collection<TestData> dataCollection = loadFromSource();
return dataCollection ;
}
private TestData data; // contains input and expected output
public FooTest(TestData data) {
this.data = data;
}
@Test
public void someTest() {
assertEquals(data.someExpectedValue, foo.execute(data.jsonConfig));
}
}
免责声明:未编译或测试。