使用黄瓜从Maven的Main运行Junit测试

时间:2016-09-09 14:15:14

标签: java maven selenium junit cucumber

我在子目录中有一个简单的测试运行器类:src / test / java

@RunWith(Cucumber.class)
//@Feature("my/package/**/*.feature")
@CucumberOptions(

  features= {"src/test/java/multiTest/Login_Logout.feature"}
, glue={"stepDefs"}
, monochrome = true
, plugin = {"pretty"}
)

public class TestRunner {
public static void main(String[] args) throws Exception {    
    System.out.println("This is a test");
    JUnitCore.main("multiTest.TestRunner");    
}
}

从我的主文件:src / main / java我想调用这个TestRunner类。最终,这将被配置为从主线程获取用户输入并将其传递到测试线程。但是这个类的最后一行是抛出编译错误。

public static void main(String[] args) throws Exception {
     JFrame frame = new JFrame("QA for EDI");
    // Setting the width and height of frame
    frame.setSize(500, 450);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    /* Creating panel. This is same as a div tag in HTML
     * We can create several panels and add them to specific 
     * positions in a JFrame. Inside panels we can add text 
     * fields, buttons and other components.
     */
    JPanel panel = new JPanel();    
    // adding panel to frame
    frame.add(panel, BorderLayout.CENTER);
    TestRunner.run(TestRunner.class);
}

有没有办法实现我想做的事情?

1 个答案:

答案 0 :(得分:0)

TestRunner没有静态run()方法,因此您会收到错误。 run()属于Thread类。

您希望通过此设置实现什么目标?如果要传递任何数据,请将其直接放入要素文件中。这就是Cucumber中的情景的全部要点。将您想要测试的所有不同内容作为单独的方案加入。

无论如何要使用TestRunner类来执行任何特定的Cucumber,你需要使用RunWith注释中提到的Cucumber TestRunner类。并且TestRunner中的主要方法永远不会被Cucumber调用。