2016-11-23 178 views
-1

我们正在开发使用硒和Junit的自动化测试。我们的要求是使用Maven制作一个可执行的jar文件。项目结构看起来像这样如何运行使用maven创建的可执行jar文件?

Project 
    |src\main\java 
    |src\main\res 
    |src\test\java 
     |testmain 
      |MainTest.java 
    |src\test\res 
    |target 
    |pom.xml 

我们使用maven组件插件创建jar文件

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <configuration> 
    <archive> 
     <manifest> 
     <mainClass>testMain.MainTest</mainClass> 
     </manifest> 
    </archive> 
    <descriptorRefs> 
     <descriptorRef>jar-with-dependencies</descriptorRef> 
    </descriptorRefs> 
    </configuration> 
</plugin>` 

我们可以能够创建jar文件(SampleMaven-0.0.1-SNAPSHOT-JAR-与 - 依赖关系.jar)使用这个命令。

清洁套装组件:单

但是,当我们尝试使用

Java来运行它的罐子SampleMaven-0.0.1-SNAPSHOT-JAR-与-dependencies.jar

我们得到这个错误

无法找到或加载主类testMain.MainTest

请帮我解决这个错误

编辑:

正如我上面提到的,我不能有MainTest.java在SRC /主文件夹,因为我们的项目只是关于主要使用硒的自动化测试。硒/ junit是不在src/main下工作的测试框架。请让我知道是否有任何其他方法来解决这一冲突。

+0

请不要发布图片,将结构发布为文字。类testMain.MainTest是否存在?你能解开你的JAR,看看它是否在那里? – Tunaki

+1

你在'MainTest'类中有'main'方法吗? –

+4

“/ src/test''文件夹中的所有文件都不会打包到jar中。将你的MainTest类放在''/ src/main''中。 ''/ src/test''应该包含你项目的测试文件(单元测​​试等),而不是最终产品的一部分。 – f1sh

回答

3

将应该成为打包罐的一部分的所有文件放入/src/main而不是/src/test

/src/test应该包含你的项目的测试文件(单元测​​试等),不是最终的工件的一部分。这就是为什么java无法在jar中找到类。

+0

我们正在使用黄瓜/ junit来运行我们的测试。当我们在'/ src/main'下时,cucumber/junit不起作用。 – user1553680

相关问题