小编Nic*_*ely的帖子

将命令行参数传递给以编程方式运行的JUnit测试用例

我试图从Java类运行JUnit测试:

    JUnitCore core = new JUnitCore();
    core.addListener(new RunListener());
    core.run(classToRun);
Run Code Online (Sandbox Code Playgroud)

问题是我的JUnit测试需要一个当前在JUnit测试中硬编码的数据库连接.

我正在寻找的是一种以编程方式运行JUnit测试的方法(上图),但是将数据库连接传递给我在运行测试的Java类中创建的,而不是在JUnit类中硬编码.

基本上就像是

    JUnitCore core = new JUnitCore();
    core.addListener(new RunListener());
    core.addParameters(java.sql.Connection);
    core.run(classToRun);
Run Code Online (Sandbox Code Playgroud)

然后在classToRun中:

@Test
Public void Test1(Connection dbConnection){
    Statement st = dbConnection.createStatement();
    ResultSet rs = st.executeQuery("select total from dual");
    rs.next();
    String myTotal = rs.getString("TOTAL");
    //btw my tests are selenium testcases:)
    selenium.isTextPresent(myTotal);
}
Run Code Online (Sandbox Code Playgroud)

我知道@Parameters,但它似乎不适用于此,因为它更多的是使用不同的值多次运行相同的测试用例.我希望我的所有测试用例共享一个数据库连接,我通过配置文件传递给我的java客户端,然后运行那些测试用例(也通过配置文件传入).

这可能吗?

PS我明白这似乎是一种奇怪的做事方式.

java junit4 selenium-rc

40
推荐指数
1
解决办法
5万
查看次数

标签 统计

java ×1

junit4 ×1

selenium-rc ×1