- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我使用@RunWith(Karate.class) 运行我的功能时,我看到以下错误
我找到了一个与 Junit 一起运行的选项,它工作正常但不生成 Karate 报告。我所有的测试用例都顺利通过了,但是我想用 Karate 运行,这样我就能得到很好的报告。
@RunWith(SpringRunner.class)
@CucumberOptions(tags = "~@ignore")
public class RestServicesDmaTestApplicationTests {
@Test
public void testABC(){
CucumberRunner.runFeature(getClass(), "/features/ABC.feature",new HashedMap(),true);
}
}
我在使用 Karate 运行时出现以下错误。
@RunWith(Karate.class)
@CucumberOptions(tags = "~@ignore",features = {"classpath:com/mastercard/send/features/ABC.feature})
public class KarateJunitTest {
@BeforeClass
public static void before() {
System.setProperty("karate.env", "stage");
}
}
java.lang.NoSuchMethodError: ch.qos.logback.classic.encoder.PatternLayoutEncoder.encode(Ljava/lang/Object;)[B
at com.intuit.karate.cucumber.ReporterLogAppender.append(ReporterLogAppender.java:72)
at com.intuit.karate.cucumber.ReporterLogAppender.append(ReporterLogAppender.java:38)
at ch.qos.logback.core.AppenderBase.doAppend(AppenderBase.java:82)
at ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:51)
at ch.qos.logback.classic.Logger.appendLoopOnAppenders(Logger.java:270)
at ch.qos.logback.classic.Logger.callAppenders(Logger.java:257)
at ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Logger.java:421)
at ch.qos.logback.classic.Logger.filterAndLog_1(Logger.java:398)
at ch.qos.logback.classic.Logger.info(Logger.java:583)
at com.intuit.karate.ScriptBridge.log(ScriptBridge.java:164)
at jdk.nashorn.internal.scripts.Script$Recompilation$5$18$\^eval\_.config(<eval>:7)
at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:636)
at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:229)
at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:387)
at jdk.nashorn.api.scripting.ScriptObjectMirror.call(ScriptObjectMirror.java:110)
at com.intuit.karate.Script.evalFunctionCall(Script.java:1532)
at com.intuit.karate.Script.call(Script.java:1489)
at com.intuit.karate.Script.callAndUpdateConfigAndAlsoVarsIfMapReturned(Script.java:1606)
at com.intuit.karate.ScriptContext.<init>(ScriptContext.java:131)
at com.intuit.karate.StepDefs.<init>(StepDefs.java:81)
at com.intuit.karate.cucumber.KarateObjectFactory.getInstance(KarateObjectFactory.java:80)
at cucumber.runtime.java.JavaStepDefinition.execute(JavaStepDefinition.java:38)
at cucumber.runtime.StepDefinitionMatch.runStep(StepDefinitionMatch.java:37)
at com.intuit.karate.cucumber.CucumberUtils.runStep(CucumberUtils.java:139)
at com.intuit.karate.cucumber.KarateRuntime.runStep(KarateRuntime.java:80)
at cucumber.runtime.model.StepContainer.runStep(StepContainer.java:44)
at cucumber.runtime.model.StepContainer.runSteps(StepContainer.java:39)
at cucumber.runtime.model.CucumberScenario.run(CucumberScenario.java:44)
at cucumber.runtime.junit.ExecutionUnitRunner.run(ExecutionUnitRunner.java:102)
at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:63)
at cucumber.runtime.junit.FeatureRunner.runChild(FeatureRunner.java:18)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at cucumber.runtime.junit.FeatureRunner.run(FeatureRunner.java:70)
at com.intuit.karate.junit4.Karate.runChild(Karate.java:118)
at com.intuit.karate.junit4.Karate.runChild(Karate.java:33)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at com.intuit.karate.junit4.Karate.run(Karate.java:127)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:237)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
我在我的类路径中看到以下两个 JAR。 classic 和 code jar 版本都是一样的。
ch\qos\logback\logback-classic\1.1.11\logback-classic-1.1.11.jar;
ch\qos\logback\logback-core\1.1.11\logback-core-1.1.11.jar;
下面是我的POM文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test.send</groupId>
<artifactId>rest-services-regression-test</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>rest-services-regression-test</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web-services</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>com.intuit.karate</groupId>
<artifactId>karate-apache</artifactId>
<version>0.6.2</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.intuit.karate</groupId>
<artifactId>karate-junit4</artifactId>
<version>0.6.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.masterthought</groupId>
<artifactId>cucumber-reporting</artifactId>
<version>3.14.0</version>
</dependency>
<dependency>
<groupId>com.google.gdata</groupId>
<artifactId>core</artifactId>
<version>1.47.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.8.10</version>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.3</version>
</dependency>
</dependencies>
<build>
<testResources>
<testResource>
<directory>src/test/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</testResource>
</testResources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
最佳答案
发现问题。 Karate 中的 logback 版本似乎不正确。
ch.qos.logback.classic.encoder.PatternLayoutEncoder.encode 方法在 1.1.11 版本的 logback 中不可用。
我已经从 Karate 中排除了 logback jar 并添加了 logback 版本 1.2.3,它开始工作了。
<dependency>
<groupId>com.intuit.karate</groupId>
<artifactId>karate-apache</artifactId>
<version>0.6.2</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.3</version>
</dependency>
关于testing - Karate @RunWith(Karate.class) 抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48553055/
我有一个 gradle 文件 testCompile('junit:junit') testCompile('org.powermock:powermock-core:1.6.5') testComp
我使用 @RunWith(MockitoJUnitRunner.class) 与mockito 进行 junit 测试。但现在我正在使用 spring boot 应用程序并尝试使用 @RunWith(
在通常使用 @Mock 和 @InjectMocks 注释的模拟中,被测类应该使用 @RunWith(MockitoJUnitRunner.class)。 @RunWith(MockitoJUnitR
@RunWith(MockitoJUnitRunner.class) 和 @RunWith(SpringJUnit4ClassRunner.class) 有什么区别?什么时候合适使用它? 最佳答案 M
在使用 Spring Boot 时,我总是将 @SpringBootTest 添加到我的测试类中,并且我的测试按预期工作。我想知道添加 @RunWith(SpringRunner.class) 能带来
目前我的测试类有以下内容: @RunWith(Parameterized.class) @RunWith(PowerMockRunner.class) public class TestApp ext
我的项目是用 JUnit 5 设置的,我想为我的测试使用不同的 Runner,但我什至不能使用 @RunWith 注释,因为它无法编译。在本指南中,https://www.baeldung.com/j
在不研究 JUnit 源代码本身(我的下一步)的情况下,是否有一种简单的方法可以设置每个测试使用的默认 Runner,而不必在每个测试上设置 @RunWith?我们有大量的单元测试,我希望能够全面添加
我正在从仅使用 Intellij 管理我的构建系统转向使用 Intellij/Maven。当我通过@RunWith(KmlParameterizedRunner.class) 使用我自己的运行器运行我
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 已关闭 7 年前。 此问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-topic在这里
我有一个自定义测试运行程序来运行部分测试,以便我可以将测试分布在不同的 jenkins 节点上。如果运行所有集成测试,则需要一个小时。所以我有 3 台服务器运行 1/3 的测试,总共只需要 20 分钟
我有注释这些注释的类: @ContextConfiguration(locations = { "classpath:pathToXml.xml" }) @RunWith(Spring
我正在尝试让 RunWith(PowerMockRunner.class) 使用我现有的包注释。 版本: powermock 1.4.12 mockito 1.9.0 junit 4.8.2 pack
我有这个非常简单的类: @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations={"classpath*:/
以下 Java 类无法在我的 IDE (Intellij IDEA) 中运行。 IDE 没有给出任何原因,这使得故障排除变得痛苦和困难。 这个类看起来像这样: import cucumber.api.
这个问题在这里已经有了答案: Initialising mock objects - Mockito (8 个答案) 关闭 6 年前。 我正在使用 Junit 4.8.2。当我使用 @RunWith
我有以下测试代码: package soundSystem; import static org.junit.Assert.*; import org.junit.Test; import org.j
我正在使用 spring boot starter test 编写 JUnit 测试用例。我喜欢使用 JunitParamrunner,它有助于为参数化测试传递文件。基本上它逐行读取文件中的数据,并为
我正在处理 BDD 文件并尝试使用 JUnit 进行测试。 我想将 RunCukesTest 类与 @RunWith(Cucumber.class) 一起使用。 我在很多网站上搜索过如何安装要求,但我
这个注解有什么作用? 我想什么时候使用它? 我什么时候不想使用它? @RunWith(SpringJUnit4ClassRunner.class) 当我使用 Google 搜索时,我可以找到更多的用法
我是一名优秀的程序员,十分优秀!