当前位置: 首页 > 知识库问答 >
问题:

cucumber框架中的ClassNotFoundException

蓬威
2023-03-14

我正在使用cucumber框架进行移动应用程序测试。在pom.xml中,我给出了下面这个插件来运行TestClass.java--它有上传应用程序最新apk版本的代码。Main方法存在于这个TestClass中。我需要在实际测试执行之前运行这个。如果我使用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>
Console error:
            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)
I also tried changing the phase after test-compile. Still i am getting the same error. Someone pls help.

共有1个答案

汪弘盛
2023-03-14

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

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>exec-maven-plugin</artifactId>
  <version>3.0.0</version>
  <executions>
    ...
  </executions>
  <configuration>
    ...
    <classpathScope>test</classpathScope>
  </configuration>
</plugin>
 类似资料:
  • 我是银行领域帐户的自动化测试员。我有个问题需要你的帮助。 当前的方法: 1.我们用于API服务测试的框架是使用RESS assured的基于Java的Serenity-Cucumber框架。 2.与该框架相关的所有脚本开发/脚本维护活动都由我们团队中的自动化测试人员负责。 3.几周前,我们了解了空手道框架并完成了PoC(概念验证)。 4.一切顺利,我们正在计划迁移现有的RESS assured J

  • 我一直面临Chrome浏览器超时的问题,日志如下:, [1538530975.003][严重]:从渲染器接收消息时超时:57.998[1538530975.008][严重]:从渲染器接收消息时超时:-0.005 通过一些研究发现了解决方案(参考:https://www.skptricks.com/2018/08/timed-out-receiving-message-from-renderer-s

  • 有人在拐角处说:Cucumber或JBehave和Cypress是一样的。恐怕那不是真的。但有什么论点可以回答。我不开发网络应用程序,我很难比较这两种解决方案。 我试图澄清我的问题:假设有一个应用程序具有后端服务和使用这些服务的前端(web-app)。后端代表复杂的工作流,整个应用程序应通过BDD框架(如cucumber)进行测试。主要的好处是通过功能和场景描述提供了一种最新的文档。它是像黄瓜这样

  • 我正在使用Cucumber结合Serenity框架编写一些BDD自动化测试。在我的BDD测试中,我需要一些超时机制,这样如果cucumber场景或Serenity中的一个步骤花费的时间太长,它就会超时,测试就会失败。 我在下面的链接中发现了一些信息:https://groups.google.com/forum/#!topic/cukes/QaPvVMnqDvE 因此,对于Cucumber,步骤定

  • 测试启动后,结果是测试通过,但测试框架意外退出。如何解决? 试样 测试特性 输出 配置 http://maven.apache.org/xsd/maven-4.0.0.xsd"

  • 我正昂首阔步地在Intellij中运行一个简单的Cucumber脚本。在解决了所有依赖问题之后,现在当我运行场景时,我得到的错误是:测试框架意外退出 下午4点34分开始测试... 请帮我做这个。已经在这上面浪费了很多时间。