GVKun编程网logo

通过CLI执行testng.xml时出错:找不到或加载主类org.testng.TestNG

12

针对通过CLI执行testng.xml时出错:找不到或加载主类org.testng.TestNG这个问题,本篇文章进行了详细的解答,同时本文还将给你拓展IDEA运行TestNG报错rg.testng.

针对通过CLI执行testng.xml时出错:找不到或加载主类org.testng.TestNG这个问题,本篇文章进行了详细的解答,同时本文还将给你拓展IDEA 运行 TestNG 报错 rg.testng.TestNGException: org.xml.sax.SAXParseException;、IDEA自动生成TestNG的testng.xml的插件、IDEA自动生成TestNG的testng.xml的插件方法、Java - Test - TestNG: Idea 引入 testng.xml 自动生成插件等相关知识,希望可以帮助到你。

本文目录一览:

通过CLI执行testng.xml时出错:找不到或加载主类org.testng.TestNG

通过CLI执行testng.xml时出错:找不到或加载主类org.testng.TestNG

在开始之前,我是硒的新手。我查找了该问题的所有答案,但仍无法解决该问题。我的%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:\\gecko\\geckodriver.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>

运行

cd C:\Users\keating99\workspace\FdimTestsjava -cp C:\Users\keating99\workspace\FdimTests\lib*;C:\Users\keating99\workspace\FdimTests\bin org.testng.TestNG testng.xml

我确定我已经完美地设置了硒测试。我检查了类路径和项目路径,一切似乎都还可以。

根本没有任何帮助。再一次没有任何运气就查了所有其他答案。在此先感谢您的帮助:)

更新


C:\Users\keating99\workspace\FdimTests>java org.testng.TestNG testng.xmlException 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

答案1

小编典典

执行 testng.xml 的最简单方法如下:

  • 通过 Windows资源管理器IDE(Eclipse) 获取 项目位置 ,然后转到“ 项目位置” 并创建目录 lib* *
  • 转储 lib 目录中的所有库(Selenium jar,TestNG)。
  • Project Directory中 ,通过CLI提供以下类路径:

    C:\Users\keating99\workspace\FdimTests>set classpath=C:\Users\keating99\workspace\FdimTests\bin;C:\Users\keating99\workspace\FdimTests\lib\*;
  • 现在,执行 testng.xml ,如下所示:

    C:\Users\keating99\workspace\FdimTests>java org.testng.TestNG testng.xml
  • 观察测试用例被执行。

IDEA 运行 TestNG 报错 rg.testng.TestNGException: org.xml.sax.SAXParseException;

IDEA 运行 TestNG 报错 rg.testng.TestNGException: org.xml.sax.SAXParseException;

从 eclipse 复制的依赖注解,一运行测试脚本发现报错如下:

"F:\Program Files\Java\jdk1.7.0_17\bin\java" -ea -Didea.launcher.port=7533 "-Didea.launcher.bin.path=F:\Program Files (x86)\JetBrains\IntelliJ IDEA 14.1\bin" -Dfile.encoding=UTF-8 -classpath "F:\Program Files (x86)\JetBrains\IntelliJ IDEA 14.1\plugins\testng\lib\testng-plugin.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\charsets.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\deploy.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\javaws.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\jce.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\jfr.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\jfxrt.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\jsse.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\management-agent.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\plugin.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\resources.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\rt.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\ext\access-bridge-64.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\ext\dnsns.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\ext\jaccess.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\ext\localedata.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\ext\sunec.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\ext\sunjce_provider.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\ext\sunmscapi.jar;F:\Program Files\Java\jdk1.7.0_17\jre\lib\ext\zipfs.jar;E:\workespace\demotest\target\classes;E:\repository\org\testng\testng\6.9.10\testng-6.9.10.jar;E:\repository\com\beust\jcommander\1.48\jcommander-1.48.jar;E:\repository\org\beanshell\bsh\2.0b4\bsh-2.0b4.jar;E:\repository\selenium-server-standalone\selenium-server-standalone\2.53\selenium-server-standalone-2.53.jar;F:\Program Files (x86)\JetBrains\IntelliJ IDEA 14.1\plugins\testng\lib\testng.jar;F:\Program Files (x86)\JetBrains\IntelliJ IDEA 14.1\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain org.testng.RemoteTestNGStarter -port 65416 -usedefaultlisteners false -socket65417 -temp F:\temp\idea_testng4.tmp
org.testng.TestNGException: org.xml.sax.SAXParseException; lineNumber: 3; columnNumber: 44; 值为 "none" 的属性 "parallel" 必须具有列表 "false methods tests classes instances" 中的值。
at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:325)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:90)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:206)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:177)
at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:125)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
Caused by: org.xml.sax.SAXParseException; lineNumber: 3; columnNumber: 44; 值为 "none" 的属性 "parallel" 必须具有列表 "false methods tests classes instances" 中的值。
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:437)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:325)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.validateDTDattribute(XMLDTDValidator.java:1392)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.addDTDDefaultAttrsAndValidate(XMLDTDValidator.java:1311)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleStartElement(XMLDTDValidator.java:1917)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(XMLDTDValidator.java:742)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:376)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:602)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3065)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:881)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:302)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:195)
at org.testng.xml.XMLParser.parse(XMLParser.java:39)
at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.java:16)
at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.java:9)
at org.testng.xml.Parser.parse(Parser.java:172)
at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.java:305)
... 9 more
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8

Process finished with exit code 0

解决方案:

原因为 6.9.10 版本的 testng,开始验证 xml 中的元素;而 idea 默认的 testng.xml 模板中 parallel 设置为 none,因此报错。

所以解决方法:

1. testng 使用 6.9.9

或者

2. testng 使用 6.9.10, 在 testng.xml 中 parallel 设置为 false

效果如下:

 

IDEA自动生成TestNG的testng.xml的插件

IDEA自动生成TestNG的testng.xml的插件

 

  1. 某地方见到的,自己实际操作一遍,记录一下。方便以后查询。
  2. 下载Create TestNG XML 插件,重启IDEA即可。

  3. 重启idea,新建Maven项目。

  4. pom.xml增加依赖
    <dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>6.10</version>
    </dependency>
  5. 产生testng.xml文件

    有兴趣的同学,可以尝试一下。

IDEA自动生成TestNG的testng.xml的插件方法

IDEA自动生成TestNG的testng.xml的插件方法

这篇文章主要介绍了IDEA自动生成TestNG的testng.xml的插件方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

某地方见到的,自己实际操作一遍,记录一下。方便以后查询。下载Create TestNG XML 插件,重启IDEA即可。

重启idea,新建Maven项目。

pom.xml增加依赖

org.testngtestng6.10

产生testng.xml文件

到此这篇关于IDEA自动生成TestNG的testng.xml的插件方法的文章就介绍到这了,更多相关IDEA自动生成TestNG内容请搜索小编以前的文章或继续浏览下面的相关文章希望大家以后多多支持小编!

Java - Test - TestNG: Idea 引入 testng.xml 自动生成插件

Java - Test - TestNG: Idea 引入 testng.xml 自动生成插件

1. 概述

  1. Idea 引入自动生成 testng.xml 插件
  2. 自动生成 testng.xml

2. 背景

  1. testng 调试

    1. 调试 testng, 主要是这两种方法
      1. ide 下直接执行测试
        1. 方法
      2. ide 下执行 testng.xml
  2. testng.xml

    1. 概述
      1. 测试套件 的配置文件
  3. 问题

    1. 每次都要手写, 会比较麻烦
      1. 解决方案

        1. 备份一个, 每次按格式改
        2. 使用插件自动创建
        3. 写个程序自动生成 xml
      2. 感觉

        1. 方案2 是最方便的

3. 环境

  1. ide
    1. idea
      1. 2018.2

4. 步骤

  1. 安装插件: Create TestNG XML
    1. 进入 插件管理

      1. 路径

        file > settings > plugins
        
    2. 搜索插件

      1. 输入搜索内容 1. testng

      2. 查找

        1. 单击 Browse repositories...
      3. 找到插件 Create TestNG XML

    3. 安装插件

      1. 单击右侧按钮

        1. install
      2. 安装成功后重启 idea

5. 使用

  1. 创建 testng.xml 文件

    1. 右键项目
    2. 选择 Create TestNG XML
  2. 结果

    1. 成功生成 testng.xml 文件
  3. 其他

    1. 提示

      1. 确认操作后, 会有一个提示
        1. 提示内容
          1. 文件名
          2. 文件路径
    2. 刷新

      1. 一定要刷新 project 窗口

        # 焦点在 project 上
        ctrl + alt + y
        
    3. 格式

      1. 默认的格式貌似有点乱
        1. 调整

          # 打开testng.xml
          # 焦点在 代码窗口
          ctrl + alt + l
          
    4. 内容

      1. 这个就不敢保证了
        1. 但是肯定是能用的

ps

  1. ref

    1. java idea中集成testng,Maven
  2. 后续

    1. 简单介绍下 testng 的一些情况

今天关于通过CLI执行testng.xml时出错:找不到或加载主类org.testng.TestNG的介绍到此结束,谢谢您的阅读,有关IDEA 运行 TestNG 报错 rg.testng.TestNGException: org.xml.sax.SAXParseException;、IDEA自动生成TestNG的testng.xml的插件、IDEA自动生成TestNG的testng.xml的插件方法、Java - Test - TestNG: Idea 引入 testng.xml 自动生成插件等更多相关知识的信息可以在本站进行查询。

本文标签: