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

JAVAlang.NoClassDefFoundError:org/testng/IAnnotationTransformer2

慕阳平
2023-03-14

为QAFTestSteps运行testng配置时,我遇到以下错误:

显示错误

[RemoteTestNG] detected TestNG version 7.5.0
log4j:WARN No such property [follow] in org.apache.log4j.FileAppender.
java.lang.NoClassDefFoundError: org/testng/IAnnotationTransformer2
        at java.base/java.lang.ClassLoader.defineClass1(Native Method)
        at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1010)
        at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
        at 
java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:855)

步骤定义

import java.util.List;


import com.qmetry.qaf.automation.step.QAFTestStep;

public class GoogleSearchSteps {
   
   
            @QAFTestStep(description = "user is on google Web Page")
            public void step1() {
                    System.out.println("I am on Google Search Page");

            }

            @QAFTestStep(description = "user enters text {strText} in google search box")
            public void iSearchFor(String strText) {
                    System.out.println("I search for " + strText);

            }

            @QAFTestStep(description="click on Google Search button")
            public void clickOnGoogleSearchButton(List<String> s) {
                    System.out.printf("List: %s\n", s);

            }
           
            @QAFTestStep(description="search result page should generate")
            public void searcgResultsShouldPopulate(List<String> s) {
                    System.out.printf("List: %s\n", s);

            }
        

}

功能文件

Feature: Text box validation

Scenario: Validate google search text box

   Given user is on google Web Page
   When user enters text 'DNA' in google search box
   And click on Google Search button
   Then search result page should generate

测试执行配置

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="QAF Demo" verbose="0">
<test name="Gherkin-QAF-Test">
   <parameter name="step.provider.pkg" value="com.qmetry.qaf.automation.impl.step.qaf;" />
   <parameter name="scenario.file.loc" value="scenarios/searchtext.feature" />
   <classes>
      <class name="com.qmetry.qaf.automation.step.client.gherkin.GherkinScenarioFactory" />
   </classes>
</test>
</suite>

共有1个答案

汪臻
2023-03-14

看起来像版本兼容性问题。使用最新版本的qaf3.1.0-RC2与testng7.4.0

更新版本将修复上述错误,但您仍将看到与步骤相关的问题。原因如下:

@QAFTestStep(description="click on Google Search button") //missing argument placeholder 
   public void clickOnGoogleSearchButton(List<String> s) {
      System.out.printf("List: %s\n", s);
   }
           
@QAFTestStep(description="search result page should generate")//missing argument placeholder
   public void searcgResultsShouldPopulate(List<String> s) {
      System.out.printf("List: %s\n", s);
   }

如果您的步骤(方法)有参数,则步骤描述需要有参数占位符,并且这些参数需要在调用步骤的位置传递。请参见下面的示例:

@QAFTestStep(description="click on Google Search button")
   public void clickOnGoogleSearchButton() {
      System.out.printf("clickOnGoogleSearchButton");
   }
           
@QAFTestStep(description="search result page should generate {results}")
   public void searcgResultsShouldPopulate(List<String> s) {
      System.out.printf("List: %s\n", s);
   }

特征文件:

Feature: Text box validation

Scenario: Validate google search text box

   Given user is on google Web Page
   When user enters text 'DNA' in google search box
   And click on Google Search button
   Then search result page should generate ["a","b","c"]
 类似资料:
  • 我正在构建一个web应用程序,并使用ApachePOI处理excel工作表。当我启动服务器时,出现以下异常。问题是,在我尝试构建它并部署到heroku之前,它一直工作得很好(但可能与此无关)。有人有主意吗?? 我的pom。xml文件: 还有我的web.xml

  • 我下面的自定义日志工具来实现日志功能的电子邮件使用log4j。 我已经将log4j:1.2.17的依赖项以及jar添加到类路径中。我正在尝试使用arquillian进行测试。但每次我都会犯同样的错误。 我知道它即将出现,因为我使用的是级别而不是优先级,而优先级现在已被弃用。我已经添加了正确的jar和导入,但是当我运行测试时仍然会出现错误。 我也提到了这些链接,但对我来说没有任何效果。 是什么导致了

  • 我是Springboot新手,希望有一个示例项目正在运行。 我在Intellij中执行时遇到以下错误:java。lang.NoClassDefFoundError:org/springframework/web/util/UriTemplateHandler POM是:https://maven.apache.org/xsd/maven-4.0.0.xsd” 控制器代码为: DemoApplica

  • 我正在开发maven jersey rest api,并使用hbase和hadoop。下面是我的pom。xml文件。 我的m2存储库不包括org/apache/hadoop下的跟踪文件夹。我再次删除了它更新了maven,但仍然没有运气。

  • 我是Spring的新手。我用的是BasicDataSource 我使用了hibernate-commons-annotations-3.0.0。ga.jar,commons-pool2-2.0。jar,commons-dbcp2-2.1。jar,mysql-connector-java-5.1.4。jar,hibernate-core-3.6.9。最终的罐子 我得到了这个错误:

  • 我正在尝试部署我的应用程序,但它给了我一个错误:未能实例化SLF4J LoggerFactory报告的异常: 我在Maven依赖区有罐子: weblogic中log4j jar的类路径: log4j。xml(来自类路径): 我错了什么?我无法想象。。。请帮帮我!谢谢