我们有一个文本文件,其中给出了搜索查询列表和预期结果。如,
搜索结果
a:120 result1
b:220 result2
.....
.....
现在,我们需要编写一个 JUnit(在我们的日常构建中大量使用)测试类,其中每一行代表一个@Test method
. 因此,我们知道哪个搜索案例失败(UI)。
我们已经有了一个解决方案,我们只有一个 @Test 方法,并且我们有日志来检查哪个案例通过或失败。
但是,我们正在尝试实现每个案例都表示为一个 junit 方法。是否真的可以为 JUnit 架构动态创建一个 @Test 方法。
我们的 @Test 方法对于每个搜索案例都是相同的。这意味着,我们只想每次都传递一个不同的参数。
我想出了一个 JUnit3 解决方案来解决我的问题。需要帮助将其翻译成 Junit4。
public static Test suite()
{
TestSuite suite = new TestSuite();
for ( int i = 1; i <= 5; i++ ) {
final int j = i;
suite.addTest(
new Test1( "testQuery" + i ) {
protected void runTest()
{
try {
testQuery( j );
} catch ( MalformedURLException e ) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch ( SolrServerException e ) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
);
}
return suite;
}