Junit 如何在TestNG中使用DbUnit
我需要将DbUnit与TestNG集成 1) 是否可以将DbUnit与TestNG一起使用,因为DbUnit基本上是JUnit的扩展。Junit 如何在TestNG中使用DbUnit,junit,testng,dbunit,Junit,Testng,Dbunit,我需要将DbUnit与TestNG集成 1) 是否可以将DbUnit与TestNG一起使用,因为DbUnit基本上是JUnit的扩展。 2) 如果是,怎么做?不确定您到底想做什么,但可能会有所帮助。它类似于dbunit扩展,但不限于此,并且支持与TestNg的集成(通过为您的测试用例扩展unitiltestng类)。最后我找到了一种将dbunit与TestNg结合使用的方法 使用IDatabaseTester works的实例 但另一个解决办法是: 扩展AbstractDatabaseTeste
2) 如果是,怎么做?不确定您到底想做什么,但可能会有所帮助。它类似于dbunit扩展,但不限于此,并且支持与TestNg的集成(通过为您的测试用例扩展unitiltestng类)。最后我找到了一种将dbunit与TestNg结合使用的方法 使用IDatabaseTester works的实例 但另一个解决办法是: 扩展AbstractDatabaseTester并实现getConnection和重写必要的函数。 但一件重要的事情是在测试前后调用onSetup()和onTeardown()
希望这有助于…这里有一个执行所需函数的简单类
public class SampleDBUnitTest {
IDatabaseTester databaseTester;
IDataSet dataSet;
@BeforeMethod
public void setUp() throws Exception {
// These could come as parematers from TestNG
final String driverClass = "org.postgresql.Driver";
final String databaseUrl = "jdbc:postgresql://localhost:5432/database";
final String username = "username";
final String password = "password";
dataSet = new FlatXmlDataSet(Thread.currentThread().getContextClassLoader().getResourceAsStream("dataset.xml"));
databaseTester = new JdbcDatabaseTester(driverClass, databaseUrl, username, password);
databaseTester.setSetUpOperation(DatabaseOperation.CLEAN_INSERT);
databaseTester.setDataSet(dataSet);
databaseTester.setTearDownOperation(DatabaseOperation.NONE);
databaseTester.setDataSet(dataSet);
databaseTester.onSetup();
}
@AfterMethod
public void tearDown() throws Exception {
databaseTester.onTearDown();
}
@Test
public void t() throws Exception {
// Testing, testing
}
}
也许你可以提供你想做的更具体的场景。对我来说,dbunit用于准备测试数据库状态,而UnitIL用于管理和简化dbunit特定的配置(如每个测试的数据集),无论使用JUnit还是TestNg,这些配置都应该有效。如果您想直接在TestNG中使用DbUnit,而不是其他任何东西,您可能需要注意以下问题:sourceforge.net/support/tracker.php?aid=1897627,并准备好DbUnit将在内部使用JUnit来完成某些事情,我需要在TestNG中使用DbUnit,因为DbUnit扩展了JUnit,所以我不知道该怎么做。目前我正在使用IDatabaseTester实例,而不是扩展类DbTestCase,这是在TestNG中使用DbUnit的正确方法吗?我对此没有太多评论,因为我自己不使用TestNG(并且通过Unitils管理大多数DbUnit配置),但是环顾四周后,我意识到已经解决了这个问题:您只需要找出要扩展的TestNg测试类是什么,以及TestNg的前后方法,以及IDatabaseTester所需的接线中的插槽(所示示例使用JdbcDatabaseTester)