我正在尝试使用Selenium WebDriver和testNG从我创建的Java GUI测试平台运行并行测试。测试平台与testNG环境分开。当我从XML文件运行并行测试时,测试运行正常。当我启动GUI并尝试单击我指定的按钮来调用XML文件时,我得到“线程中的异常”AWT-EventQueue-0“java.lang.NoClassDefFoundError:org / testng / TestNG”。根据我研究过的答案,似乎这是一个类路径问题。我确保所有必需的testNG jar文件都在构建路径中。
else if(e.getSource() == bTestParallel) { //Test Parallel
try {
TestAllTestCases.runXML();
} catch (Exception e1) {
e1.printStackTrace();
}
}
这是应该运行xml文件的jbutton执行的代码。
public static void runXML() {
// Create object of TestNG Class
TestNG runner=new TestNG();
// Create a list of String
List<String> suitefiles=new ArrayList<String>();
// Add xml file which you have to execute
suitefiles.add("C:\\Users\\AFSW-NE\\git\\AfsTestBed\\testng.xml");
// now set xml file for execution
runner.setTestSuites(suitefiles);
// finally execute the runner using run method
runner.run();
这就是按下按钮时调用的方法。调试时,似乎runXML()方法就是问题所在。它说runXML()抛出NoClassDefFoundError,原因是ClassNotFoundException“org.testng.TestNG”。所以我认为它必须是类路径的东西,但我不确定是什么。 pom文件中的依赖项存在,并且jar也存在。
答案 0 :(得分:0)
只有当类不在类路径中时才会发生NoClassDefFoundError。在eclipse中,在构建路径中,有一个库的选项卡,然后查看是否添加了jar,如果是,则自动取消选中构建,然后再次选择它。它然后工作,面临同样的问题,有人建议我这样做,它的工作。试试看它是否有效,希望它有所帮助..