4

我需要将 DbUnit 与 TestNG 集成。

1)是否可以将 DbUnit 与 TestNG 一起使用,因为 DbUnit 基本上是 JUnit 的扩展。
2)如果是怎么办?

4

3 回答 3

2

最后我找到了一种将 DbUnit 与 TestNG 一起使用的方法!

使用 IDatabaseTester 的实例有效,

但另一种解决方法是:扩展 AbstractDatabaseTester 并实现 getConnection 并覆盖必要的功能。但一件重要的事情是在测试前后调用 onSetup() 和 onTeardown()。

希望这可以帮助...

于 2011-07-12T20:57:55.390 回答
1

不确定您到底要做什么,但也许Unitils会有所帮助。它就像一个 dbunit 扩展但不限于此,并支持与 TestNg 的集成(通过为您的测试用例扩展 UnitilsTestNG 类)。

于 2011-07-11T08:56:46.390 回答
0

这是执行所需功能的简单类。

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
    }
}
于 2013-07-05T06:25:04.900 回答