Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用(TestNG.xml+;Maven)创建Bat文件需要正确的步骤_Java_Maven_Batch File_Selenium Webdriver_Testng - Fatal编程技术网

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

Java 使用(TestNG.xml+;Maven)创建Bat文件需要正确的步骤,java,maven,batch-file,selenium-webdriver,testng,Java,Maven,Batch File,Selenium Webdriver,Testng,我想知道如何创建正确的Bat文件 我正在使用Maven+Selenium(TestNG) 我尝试了许多不同的方法来解决异常,但这是最常见的异常之一:无法找到或加载main class/java.lang.ClassNotFoundException 在我的Maven项目中,没有bin或lib文件夹,我想知道它是什么。是否从.m2(Maven)安装调用库 要调用类文件,请在我的maven project.class文件中找到如下内容:E:\testBatchDemo\target\classes\

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

我正在使用Maven+Selenium(TestNG)

我尝试了许多不同的方法来解决异常,但这是最常见的异常之一:无法找到或加载main class/java.lang.ClassNotFoundException

在我的Maven项目中,没有bin或lib文件夹,我想知道它是什么。是否从.m2(Maven)安装调用库

要调用类文件,请在我的maven project.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路径

根据您的问题描述,我认为在跳入解决方案之前,我们需要解决某些灰色区域

  • 我想知道如何创建正确的
    批处理
    (即
    .bat
    )文件:基本上,它是一个构建工具,可以广泛地与
    pom.xml
    结合使用,并且不需要任何Windows批处理文件
  • 如果您的用例要将Windows批处理文件传递给进行持续集成,则需要验证此步骤,以确定Windows批处理文件是否能够启动测试套件的执行
  • 然而,Jenkins也可以通过
    pom.xml
    和Maven启动测试套件的执行
现在,您的用例必须符合上述要求之一,如下所述:

  • Windows批处理文件+TestNG
  • Jenkins+TestNG
  • Jenkins+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测试方式运行

  • 成功执行时,使用
    TestNG->convert to TestNG
    转换为TestNG,并创建
    TestNG.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 -->
    
  • 通过CLI执行
    testng.xml
    ,如下所示:

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

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

  • 执行Windows批处理文件run.bat,并验证它是否按预期执行测试套件

更新 根据你的问题和随后的评论

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

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


根据您的问题描述,我认为在跳入解决方案之前,我们需要解决某些灰色区域

  • 我想知道如何创建正确的
    批处理
    (即
    .bat
    )文件:基本上,它是一个构建工具,可以广泛地与
    pom.xml
    结合使用,并且不需要任何Windows批处理文件
  • 如果您的用例要将Windows批处理文件传递给进行持续集成,则需要验证此步骤,以确定Windows批处理文件是否能够启动测试套件的执行
  • 然而,Jenkins也可以通过
    pom.xml
    和Maven启动测试套件的执行
现在,您的用例必须符合上述要求之一,如下所述:

  • Windows批处理文件+TestNG
  • Jenkins+TestNG
  • Jenkins+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测试方式运行

  • 成功执行时,使用
    TestNG->convert to TestNG
    转换为TestNG,并创建
    TestNG.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 -->
    
  • 通过CLI执行
    testng.xml
    ,如下所示:

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

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

  • 执行Windows批处理文件run.bat,并验证它是否按预期执行测试套件

更新 根据你的问题和随后的评论

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

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


感谢您的帮助。我会的