0

我正在使用 Cucumber 框架进行移动应用程序测试。在 pom.xml 中,我在下面给出了这个插件来运行 TestClass.java - 它有用于上传应用程序最新 APK 版本的代码。此 TestClass 中存在 Main 方法。我需要在实际测试执行之前运行它。所以我使用了 exec 插件。如果我使用 pom.xml --> mvn clean test 运行,我会收到此错误。ClassNotFoundExpection 总是与 pom.xml 一起抛出,但单个类运行完美。

pom.xml:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <version>3.0.0</version>
       <executions>
    <execution>
            <id>installAPK</id>
            <phase>generate-test-sources</phase>
            <goals>
            <goal>java</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <includePluginDependencies>true</includePluginDependencies>
        <mainClass>org.com.package1.TestClass</mainClass>
    </configuration>
</plugin>

控制台错误:

java.lang.ClassNotFoundException: org.com.package1.TestClass
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
    at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:246)
    at java.lang.Thread.run(Thread.java:748)

我还尝试在测试编译后更改阶段。我仍然遇到同样的错误。有人请帮忙。

4

1 回答 1

1

根据exec-maven-plugin 文档,执行的默认依赖范围是runtime. 如果是测试源的一部分,请将其更改为test以下配置。TestClass

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>exec-maven-plugin</artifactId>
  <version>3.0.0</version>
  <executions>
    ...
  </executions>
  <configuration>
    ...
    <classpathScope>test</classpathScope>
  </configuration>
</plugin>
于 2021-10-20T09:21:21.597 回答