java – 通过CLI执行testng.xml时出错:无法找到或加载主类org.t
发布时间:2020-12-15 07:36:46 所属栏目:Java 来源:网络整理
导读:在我进入它之前,我是硒的新手,等等.我查找了这个问题的所有答案,仍然无法解决问题.我的%claspath%等等都是正确的. jar文件位于正确的文件夹中.我完全迷失了为什么这不起作用.我的猜测是,我正在做一些愚蠢的事情,专家会很快发现错误. 我能够在Eclipse中运行
在我进入它之前,我是硒的新手,等等.我查找了这个问题的所有答案,仍然无法解决问题.我的%claspath%等等都是正确的. jar文件位于正确的文件夹中.我完全迷失了为什么这不起作用.我的猜测是,我正在做一些愚蠢的事情,专家会很快发现错误.
我能够在Eclipse中运行以下测试,它打开firefox并运行测试没有问题.如果我从cmd或Jenkins运行测试我得到以下错误:错误:无法找到或加载主类org.testng.TestNG 我用虚拟数据替换了下面的实际信息: 硒类 package package1; import static org.junit.Assert.fail; import java.util.concurrent.TimeUnit; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.Alert; import org.openqa.selenium.By; import org.openqa.selenium.NoAlertPresentException; import org.openqa.selenium.NoSuchElementException; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class login { private WebDriver driver; private String baseUrl; private boolean acceptNextAlert = true; private StringBuffer verificationErrors = new StringBuffer(); @Before public void setUp() throws Exception { System.setProperty("webdriver.gecko.driver","C:geckogeckodriver.exe"); driver = new FirefoxDriver(); baseUrl = "http://example.com"; driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS); } @Test public void testLogin() throws Exception { driver.get(baseUrl + "index.php"); driver.findElement(By.id("email")).clear(); driver.findElement(By.id("email")).sendKeys("myemail@example.ie"); driver.findElement(By.id("password")).clear(); driver.findElement(By.id("password")).sendKeys("mypassword"); driver.findElement(By.xpath("//input[@value='Login ?']")).click(); } @After public void tearDown() throws Exception { driver.quit(); String verificationErrorString = verificationErrors.toString(); if (!"".equals(verificationErrorString)) { fail(verificationErrorString); } } private boolean isElementPresent(By by) { try { driver.findElement(by); return true; } catch (NoSuchElementException e) { return false; } } private boolean isAlertPresent() { try { driver.switchTo().alert(); return true; } catch (NoAlertPresentException e) { return false; } } private String closeAlertAndGetItsText() { try { Alert alert = driver.switchTo().alert(); String alertText = alert.getText(); if (acceptNextAlert) { alert.accept(); } else { alert.dismiss(); } return alertText; } finally { acceptNextAlert = true; } } } 项目结构 textng.xml <suite name="SampleSuite"> <test name="LearningJenkins"> <classes> <class name="package1.login"></class> </classes> </test> </suite> 的run.bat cd C:Userskeating99workspaceFdimTests java -cp C:Userskeating99workspaceFdimTestslib*;C:Userskeating99workspaceFdimTestsbin org.testng.TestNG testng.xml 我确信我已经完美地设置了硒测试.我检查了类路径和项目路径,一切似乎都没问题. 任何帮助都将是一个很大的帮助.再次提起所有其他答案,没有任何运气.在此先感谢任何帮助人:) UPDATE C:Userskeating99workspaceFdimTests>java org.testng.TestNG testng.xml Exception in thread "main" java.lang.NoClassDefFoundError: bsh/EvalError at org.testng.TestRunner.<init>(TestRunner.java:99) at org.testng.SuiteRunner$DefaultTestRunnerFactory.newTestRunner(SuiteRunner.java:508) at org.testng.SuiteRunner.init(SuiteRunner.java:142) at org.testng.SuiteRunner.<init>(SuiteRunner.java:106) at org.testng.TestNG.createSuiteRunner(TestNG.java:1116) at org.testng.TestNG.createSuiteRunners(TestNG.java:1103) at org.testng.TestNG.runSuitesLocally(TestNG.java:955) at org.testng.TestNG.run(TestNG.java:900) at org.testng.TestNG.privateMain(TestNG.java:1182) at org.testng.TestNG.main(TestNG.java:1146) Caused by: java.lang.ClassNotFoundException: bsh.EvalError at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 10 more 解决方法
执行testng.xml的最简单方法如下:
>从IDE获取项目位置,即Eclipse,通过Windows资源管理器转到项目位置并创建目录库. C:Userskeating99workspaceFdimTests>set classpath=C:Userskeating99workspaceFdimTestsbin;C:Userskeating99workspaceFdimTestslib*; >现在,按如下方式执行testng.xml: C:Userskeating99workspaceFdimTests>java org.testng.TestNG testng.xml >观察Testcase被执行. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |