我想知道要创建正确的 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批处理 文件。pom.xml
__现在,您的用 例 必须与上述需求之一匹配,如下所述:
正如您广泛谈论 Windows批处理 文件一样,这是第一个选项 Windows批处理文件 + 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 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 -->
从您的 IDE (即 Eclipse )获取绝对 项目位置 ,浏览至子目录,创建目录 lib* *
将所有相关的jar和库( Selenium 和 TestNG 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}”