我想參數化從queue
以前在我的一個src/main類中設置的JUnit4測試。這是我到目前爲止已經完成,有一個爲測試套件(MigratorTestSuite
)沒有測試參數化JUnit4測試
@RunWith(Suite.class)
@Suite.SuiteClasses({ParameterizedTest.class})
public class MigratorTestSuite {
@BeforeClass
public static void setUp() throws SAXException, ParserConfigurationException, GitAPIException, IOException {
Migrator.getReady();
}
@AfterClass
public static void tearDown() throws SQLException {
DatabaseManager.closeConnections();
RepositoryManager.closeRepository();
}
}
和A類ParameterizedTest
在那裏我搞清楚如何運行parameterized JUnit test看起來作爲一類如下:
@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();
}
}
當我執行mvn clean install test -Dtest=MigratorTestSuite
的結果是,它並沒有發現任何測試,當我調試它,它表明:
沒有測試在
org.junit.internal.requests.FilterRequest.getRunner
我在做什麼錯找不到匹配的數據有任何參數從org.junit.runner.Request
?我應該在TestNG中更好地實現它嗎?我對Junit非常陌生。