当前位置: 首页 > 面试题库 >

需要使用(TestNG.xml + Maven)创建Bat文件的正确步骤

蔺翰音
2023-03-14
问题内容

我想知道要创建正确的 Bat文件

我正在使用 Maven + Selenium(TestNG)

我尝试了多种解决异常的方法,但是它是最常见的异常之一: 无法找到或加载主类/ java.lang.ClassNotFoundException

在我的Maven项目中 ,没有bin或lib文件夹 ,而我对此很纳闷。是否从.m2(Maven)安装中调用库。

调用类文件,在我的maven项目.class文件中找到类似以下内容的文件: E:\testBatchDemo\target\classes\mytest

这是到目前为止我尝试过的示例

set projectLocation=E:\testBatchDemo
cd %projectLocation%   
set classpath=E:\testBatchDemo\target\classes\mytest; 
java -cp %classpath% C:\Users\Desktop-pc\.m2\repository\org\testng\testng\6.14.3\testng-6.14.3.jar; C:\Users\Desktop-pc\.m2\repository\org\seleniumhq\selenium\selenium-java\3.12.0\selenium-java-3.12.0.jar; org.testng.TestNG %projectLocation%\testng.xml
pause

任何人都可以提供帮助,需要调用哪个库或如何获得正确的.class路径。


问题答案:

根据您的问题描述,我认为有些问题需要我们解决,否则我们将无法进入解决方案。

  • 我想知道是否要创建正确的 文件batch(即.bat:从根本上讲, Maven 是一个 构建工具 ,可以广泛地与之协同工作,pom.xml并且不需要任何 Windows批处理 文件。
  • 如果您的用 是将 Windows批处理 文件传递给 Jenkins 进行 持续集成, 那么如果 Windows批处理 文件能够启动 Test Suite 的执行,则需要验证此步骤。
  • 但是, Jenkins 也可以通过和 Maven 启动 测试套件 的执行。pom.xml __

现在,您的用 必须与上述需求之一匹配,如下所述:

  • Windows批处理文件 + TestNG
  • 詹金斯 + TestNG
  • 詹金斯 + Maven

正如您广泛谈论 Windows批处理 文件一样,这是第一个选项 Windows批处理文件 + TestNG 的相关详细信息:

  • 编写一个带有 TestNG@Test注释的简单代码块,如下所示: __
        package demoJenkins;

    import org.testng.annotations.Test;

    public class DemoJenkinsJob 
    {

        @Test
        public void testJenkins()
        {

            System.out.println("Welcome to Jenkins World");
        }
    }
  • 运行方式 TestNG Test

  • 成功执行后,使用TestNG -> Convert to TestNGtestng.xml进行转换。

  • testng.xml会是这样的:
        <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
    <suite name="Suite">
      <test name="Test">
        <classes>
          <class name="demoJenkins.DemoJenkinsJob"/>
        </classes>
      </test> <!-- Test -->
    </suite> <!-- Suite -->
  • 从您的 IDE (即 Eclipse )获取绝对 项目位置 ,浏览至子目录,创建目录 lib* *

  • 将所有相关的jar和库( SeleniumTestNG jar)复制到 lib 目录中。

    • selenium-server-standalone-3.13.0.jar
    • org.testng_6.14.2.r201802161450.jar
    • com.beust.jcommander_1.72.0.jar
    • org.apache-extras.beanshell.bsh_2.0.0.b6.jar
    • org.yaml.snakeyaml_1.17.0.jar
    • 通过 CLI 浏览到 Project Directory 并提供以下 类路径

      set classpath= \bin; \lib*;

  • 通过 CLI 执行testng.xml如下:

    Project_Directory>java org.testng.TestNG testng.xml
    
  • 成功执行后,在 Project Directory中 创建一个新的文本文档并添加以下代码:

    java -cp bin;lib/* org.testng.TestNG testng.xml
    
  • 将文件另存为 run.bat

  • 执行 Windows批处理 文件 run.bat, 并验证它是否按预期执行了 Test Suite

更新资料

根据您的问题和后续评论,

  • 当您使用 TestNG 和/或 Maven时 ,这些框架/ buildtool会将所有相关的 jar 保留在各自的位置。但是,当您打算手动配置 构建路径时 ,必须手动创建 lib 目录并保留相关 jar 的副本。

  • 也许您不需要手动创建 bin 目录,因为成功编译 Java程序时, 您的程序将自动创建 bin 并且在 执行 前保留 文件。 __



 类似资料:
  • 我创建了以下文件: //npminstall.bat 当我从Windows 10命令行(dos)运行以下命令时,命令会触发,但不会触发。我尝试在第一行之后放一个半彩色,如,但所做的只是给我npm的帮助说明。 如何让第二行在之后触发? 补充说明 我发现这也会导致同样的行为: //npminstall.bat 我认为这是因为<code>npm install 后续行动2 //npminstall.ba

  • 问题内容: 我想分发Windows上用Java编写的命令行应用程序。 我的应用程序以zip文件的形式分发,其中有一个lib目录条目,其中包含调用主类所需的.jar文件。当前,对于Unix环境,我有一个shell脚本,该脚本使用CLASSPATH调用java命令,该CLASSPATH是通过在lib目录中附加所有文件而创建的。 如何编写具有类似功能的.BAT文件?Windows世界中的find Uni

  • 项目 当我运行代码时得到一些错误。

  • 问题内容: 使用最新版本的nodejs 7.6+,我开始使用async / await。 我使用的是jshint,但据我所知,它们目前确实支持此语法,有些建议使用eslint。 所以好吧,我设置了eslint,但是argh ..它也标记了异步功能。 我知道这没什么错,因为我的代码运行良好,仅是linter。如果我注释掉一个异步功能,它也只会标记下一个。实际上eslint仅标记发现此错误的第一个异步

  • 问题内容: 我是TestNG和Selenium Webdriver的新手,并尝试使用eclipse创建testng.xml。 在www上进行了一些研究,并了解可以通过右键单击Java类>> TestNG >>转换为TestNG来创建此文件。 但是,此转换重构向导未打开。 如果Java类已经包含@Test批注(!?),则此向导是否将无法打开 您能帮我使用eclipse创建testng.xml吗? (

  • 我想设置日志级别、文件名和日志文件的文件路径。我找到了一种方法来实现这一点,除了log4j创建一个附加的日志文件外,其他方法都可以实现。我得到了下面的log4j2。xml: 在我的主函数中,我设置了${sys:logDir}和${sys:logFilename}: 它像我想要的那样工作,但是log4j在我的主项目路径中创建了一个名为“${sys:logDir}${sys:logFilename}”