Java 使用Maven从jar运行testNG项目
我正在使用testNG和Selenium对我的应用程序运行多个functionals测试 为了进行更稳定的测试,我决定在项目文件夹中包含firefox二进制文件,并调用这个特定的二进制文件,而不是默认浏览器 我现在遇到的问题是,如果有人想使用我的测试,他必须在eclipse中导入项目,重新链接java 8库,在eclipse上安装TestNG,将selenium jar添加到项目中,最后创建TestNG配置,最后使用choosen xml运行它。 我想知道这是否可以将项目简单地转换为jar文件,我将通过命令行调用该文件,例如: java SeleniumTestingTest myXmlFile.xml 这样是否可以避免上述不同的设置?我们可以使用java从jar调用testNG测试吗?firefox是否可以从jar文件运行Java 使用Maven从jar运行testNG项目,java,eclipse,maven,selenium,testng,Java,Eclipse,Maven,Selenium,Testng,我正在使用testNG和Selenium对我的应用程序运行多个functionals测试 为了进行更稳定的测试,我决定在项目文件夹中包含firefox二进制文件,并调用这个特定的二进制文件,而不是默认浏览器 我现在遇到的问题是,如果有人想使用我的测试,他必须在eclipse中导入项目,重新链接java 8库,在eclipse上安装TestNG,将selenium jar添加到项目中,最后创建TestNG配置,最后使用choosen xml运行它。 我想知道这是否可以将项目简单地转换为jar文件,
编辑1:评论中的一个好建议是将我的源代码迁移到maven项目。但同样的问题依然存在。maven能够管理需要我的测试项目的设置吗?(包括selenium jar、java 8库、testNG jar和运行firefox浏览器)最后,我没有使用maven,我只是在我的项目中创建了一个main。main将调用在程序参数中传递的XML文件中指定的testNG套件。这个方法将允许我从jar执行测试,而不必关心外部库(库testNG和selenium已经在里面了) 如果可以帮助任何人,请参阅主代码:
public class Runner {
public static void main(String[] args) throws IOException {
if(args.length != 2) {
System.out.println("Usage : <xmlFile> <OutputFileName>");
System.exit(-1);
}
Path path = Paths.get(args[0]);//Path to the xml
new PrintWriter(args[1]).close();
Charset charset = StandardCharsets.UTF_8;
String content = new String(Files.readAllBytes(path), charset);
content = content.replaceAll("theOutputFileNamePattern", args[1]);
Files.write(path, content.getBytes(charset));
//We create a testNG object to run the test specified in the xml file
TestListenerAdapter tla = new TestListenerAdapter();
TestNG testng = new TestNG();
List<String> suites = Lists.newArrayList();
suites.add(args[0]);
testng.setTestSuites(suites);
testng.run();
}
}
公共类运行程序{
公共静态void main(字符串[]args)引发IOException{
如果(参数长度!=2){
System.out.println(“用法:”);
系统退出(-1);
}
Path Path=Path.get(args[0]);//指向xml的路径
新的PrintWriter(args[1]).close();
Charset Charset=StandardCharsets.UTF_8;
字符串内容=新字符串(Files.readAllBytes(path),字符集);
content=content.replaceAll(“输出文件名模式”,args[1]);
write(path,content.getBytes(charset));
//我们创建一个testNG对象来运行xml文件中指定的测试
TestListenerAdapter tla=新的TestListenerAdapter();
TestNG TestNG=新的TestNG();
List suites=Lists.newArrayList();
suites.add(args[0]);
testng.setTestSuites(套房);
testng.run();
}
}
然后你只需要进入eclipse,然后点击文件->导出->运行Jar文件->选择要导出的配置->完成。这就是maven流行的原因。考虑将源迁移到Maven项目。maven怎么能帮我更多?我知道它可以管理项目的依赖关系,我会在互联网上期待它,但如果我能从你那里得到更多关于如何使用maven解决我的问题的信息,那就太好了。@BobReynolds maven有一本手册,你不能只在stackoverflow答案中的一段信息就开始。但是,由于您的问题不是关于使用Maven,因此当前使用Maven创建任何类型的答案都会使答案脱离主题。Maven允许您在Maven
pom.xml
文件中指定构建所需的各个步骤。这包括使用适当的JVM、引入所需的JAR(作为maven依赖项),以及在配置文件上调用selenium,配置文件由源代码提供。你可能需要学习和/或重新学习很多东西——Maven有自己的观点——但对我来说,仅仅是开发而不与特定IDE绑定的能力本身就很有价值。我想Bob想知道,是否有可能将测试打包到jar文件中,这样它就可以在没有依赖关系的情况下进行分发和执行。请参见:。