2014-07-07 65 views
0

我希望能够执行我在另一台机器上使用java编写的测试,该测试未另行配置。目前,我必须在安装了Java SDK和Maven的计算机上打开我的IDE,才能运行我的测试。我想让其他人在没有开发环境和没有任何技术知识的情况下能够像上面那样运行我并验证结果。在另一台未配置的计算机上运行selenium webdriver测试

如果可能的话,会是这样:

  • 把我,否则没有摸过电脑上的可执行文件,
  • 运行可执行文件,
  • 查看测试结果。

如何产生最简单可行的独立运行相同的Selenium测试,我可以在我的IDE已经运行可执行

回答

1

这是完全可能的,只要你运行测试的机器有java。以正常方式构建测试,并创建包含所有依赖包的可执行jar。然后你可以在另一台机器上部署该jar并从那里运行它。

如果您使用的是maven,那么shade会为您构建包含所有依赖关系的jar文件。你也可以使用assembly,尽管它有点困难。

解决方案中不太明显的部分是使用JUnit runner主类作为您的可执行文件的主类,您可以根据Oracle's tutorial进行设置。既然你已经在你的jar中拥有了所有的依赖关系,你不必担心类路径。所有您需要知道的是要运行的类是org.junit.runner.JUnitCore(see this answer),并且它需要您要运行的带注释测试类的名称。完成所有操作后,只需运行java -jar YourJarFileOfTests.jar yourorg.yourpackage.YourJunitTestClass即可。

如果您想更进一步,并将测试类名称传入java -jar,那么您可以使用create a simple suite来提取所有测试类以方便使用。您甚至可以创建您自己的主类,并使用您的硬编码includes-all-tests套件代表JUnitCore。一旦你完成了,你可以简单地运行java -jar YourJarFileOfTests.jar,它会以你的套件类作为参数调用JUnitCore,而罗伯特是你母亲的兄弟。

+0

这听起来就像我想要做的,但我有点不清楚如何做到这一点。我很容易地添加了maven的阴影插件,但我不知道如何使用它。 至于你给出的关于从命令行运行测试的第一个答案,我也有点不确定如何使用它 - 我是否需要编辑我的代码?我在哪里把我的jar的路径(使用Junit 4.0)。 非常感谢您的帮助 – user2180076

+0

扩展了这个答案。 SO上有很多可执行文件的问题和答案;如果我的回答不够清楚,请发表评论,并附上指向您发现更有用的答案的链接,然后我会更新我的答案并提供参考。 –

+0

我提供给Shade的链接包括一个[关于如何在你的pom中激活它的例子](http://maven.apache.org/plugins/maven-shade-plugin/usage.html)。你不需要做其他事情; Shade的默认操作是始终遮蔽你的jar。看看你的阴影之后你的罐子有多大;这是数百Ks更大,我敢打赌。 –

相关问题