Java 未找到参数化JUnit4测试的测试
我试图从先前在我的一个src/main类中设置的Java 未找到参数化JUnit4测试的测试,java,maven,intellij-idea,junit,junit4,Java,Maven,Intellij Idea,Junit,Junit4,我试图从先前在我的一个src/main类中设置的队列中参数化JUnit4测试。这就是我到目前为止所做的,测试套件有一个类(MigratorTestSuite) } 还有一个类ParameterizedTest,其中我正在研究如何运行一个 @RunWith(Parameterized.class) public class ParameterizedTest { @Parameterized.Parameters(name="whatever") public static Qu
队列中参数化JUnit4测试。这就是我到目前为止所做的,测试套件有一个类(MigratorTestSuite
)
}
还有一个类ParameterizedTest
,其中我正在研究如何运行一个
@RunWith(Parameterized.class)
public class ParameterizedTest {
@Parameterized.Parameters(name="whatever")
public static Queue<Deque<String>> data(){
return TestCasesConstructor.testCasesQueue;
}
private Deque<String> scenario;
public ParameterizedTest(Queue<Deque<String>> q){
scenario = q.peek();
}
@Before
public void initialize() throws ParserConfigurationException, IOException, SQLException, ClassNotFoundException {
System.out.println("--- Preparing database for running scripts");
DatabaseManager.dropDatabase();
DatabaseManager.createDatabase();
}
@Test
public void testPlainMigration() throws Exception {
Assert.assertTrue(Migrator.runScenario(this.scenario));
}
@After
public void after() throws SQLException {
DatabaseManager.closeConnections();
TestCasesConstructor.testCasesQueue.remove();
}
}
@RunWith(参数化的.class)
公共类参数化测试{
@参数化。参数(name=“whatever”)
公共静态队列数据(){
返回TestCasesConstructor.testCasesQueue;
}
私有德克情景;
公共参数化测试(队列q){
场景=q.peek();
}
@以前
public void initialize()引发ParserConfiguration异常、IOException、SQLException、ClassNotFoundException{
System.out.println(“---为运行脚本准备数据库”);
DatabaseManager.dropDatabase();
DatabaseManager.createDatabase();
}
@试验
public void testPlainMigration()引发异常{
Assert.assertTrue(Migrator.runScenario(this.scenario));
}
@之后
public void after()引发SQLException{
DatabaseManager.closeConnections();
TestCasesConstructor.testCasesQueue.remove();
}
}
当我执行mvn clean install测试-Dtest=MigratorTestSuite
时,结果是它找不到任何测试,当我调试它时,它显示:
未找到与org.junit.runner.Request
在org.junit.internal.requests.FilterRequest.getRunner
我做错了什么?我应该在TestNG中更好地实现它吗?我对Junit非常陌生。您可以尝试以下方法:
mvn clean install -Dtest=MigratorTestSuite test
data
方法应返回对象数组的集合,即collection
。每个对象数组都是一个测试向量,包含输入字符串和预期结果
测试类构造函数应该将测试向量的元素作为参数。在上面的示例中,它将采用一个字符串和一个结果参数,您通常将其存储在一个字段中,以便实际测试用例可以使用它。对于每个测试向量,将创建测试类的新实例
在您的例子中,似乎希望使用一系列场景作为参数
因此,您的数据方法应该返回场景数组的集合(每个数组的长度为1),并且您的构造函数应该使用单个场景(而不是完整的集合;因此不需要四处“窥视”)
mvn clean install -Dtest=MigratorTestSuite test