我希望能够在另一台计算机上执行我用java编写的测试,但是没有配置。目前,我必须在我的机器上打开我的IDE,它安装了Java SDK并设置了maven,以便运行我的测试。我想允许其他人在没有开发环境且没有任何技术知识的情况下运行上述内容并验证结果。
如果可能,它会是这样的:
如何生成最简单可行的独立可执行文件,它运行我已在IDE中运行的相同selenium测试?
答案 0 :(得分: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拉入所有测试类。您甚至可以创建自己的主类,使用硬编码的包含所有测试套件委托给JUnitCore
。完成后,您只需运行java -jar YourJarFileOfTests.jar
,它将以您的套件类作为参数调用JUnitCore,而Robert是您母亲的兄弟。