Java +黄瓜执行错误(java.lang.ClassCastException:类io.cucumber.docstring.DocString无法转换为类java.lang.String)

时间:2019-11-14 22:16:19

标签: java cucumber cucumber-java

当我尝试使用gradle进行黄瓜测试时,我的测试失败了。当我从Intellij Idea运行时,它可以正常工作,但是当我使用命令行-gradle clean test时,它会失败。我不知道我要去哪里错了。

build.gradle:

plugins {
    id "idea"
    id "java"
    id "checkstyle"
    id "groovy"
}

group 'com.hhh.hhh'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
    jcenter()
}

test {
    useTestNG() {
        dependsOn cleanTest
        useDefaultListeners = true
        suites "SmokeTest.xml"
    }
}

dependencies {
    compile group: 'org.testng', name: 'testng', version: '7.0.0'
    compile group: 'io.rest-assured', name: 'rest-assured', version: '4.1.2'
    compile group: 'org.assertj', name: 'assertj-core', version: '3.13.2'
    compile group: 'com.github.dzieciou.testing', name: 'curl-logger', version: '1.0.5'
    compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.25'
    compile group: 'org.slf4j', name: 'slf4j-jdk14', version: '1.7.25'

//    Cucumber dependencies
    compile group: 'io.cucumber', name: 'cucumber-java8', version: '5.0.0-RC1'
    compile group: 'io.cucumber', name: 'cucumber-java', version: '5.0.0-RC1'
    compile group: 'io.cucumber', name: 'cucumber-testng', version: '5.0.0-RC1'
    compile group: 'io.cucumber', name: 'cucumber-picocontainer', version: '5.0.0-RC1'

    compile group: 'joda-time', name: 'joda-time', version: '2.10.4'
    compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.9'
    compile group: 'javax.mail', name: 'mail', version: '1.4.7'
    compile group: 'org.json', name: 'json', version: '20190722'
    compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.10.0'
    compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.10.0'
    compile group: 'org.projectlombok', name: 'lombok', version: '1.18.10'

    compile group: 'org.apache.commons', name: 'commons-text', version: '1.8'
    compile group: 'com.google.guava', name: 'guava', version: '28.1-jre'
    compile group: 'info.cukes', name: 'gherkin', version: '2.12.2'
}

checkstyle {
    toolVersion = "8.4"
    maxErrors = 0
    maxWarnings = 0
}

例外:

java.lang.ClassCastException: class io.cucumber.docstring.DocString cannot be cast to class java.lang.String (io.cucumber.docstring.DocString is in unnamed module of loader 'app'; java.lang.String is in module java.base of loader 'bootstrap')
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    at io.cucumber.java8.Invoker.invoke(Invoker.java:20)
    at io.cucumber.java8.Java8StepDefinition.execute(Java8StepDefinition.java:40)
    at io.cucumber.core.runner.PickleStepDefinitionMatch.runStep(PickleStepDefinitionMatch.java:57)
    at io.cucumber.core.runner.TestStep.executeStep(TestStep.java:60)
    at io.cucumber.core.runner.TestStep.run(TestStep.java:46)
    at io.cucumber.core.runner.PickleStepTestStep.run(PickleStepTestStep.java:46)
    at io.cucumber.core.runner.TestCase.run(TestCase.java:47)
    at io.cucumber.core.runner.Runner.runPickle(Runner.java:66)
    at io.cucumber.testng.TestNGCucumberRunner.runScenario(TestNGCucumberRunner.java:112)
    at io.cucumber.testng.AbstractTestNGCucumberTests.runScenario(AbstractTestNGCucumberTests.java:29)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:133)
    at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:584)
    at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:172)
    at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46)
    at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:804)
    at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:145)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1507)
    at org.testng.TestRunner.privateRun(TestRunner.java:770)
    at org.testng.TestRunner.run(TestRunner.java:591)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:402)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:396)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:355)
    at org.testng.SuiteRunner.run(SuiteRunner.java:304)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1180)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1102)
    at org.testng.TestNG.runSuites(TestNG.java:1032)
    at org.testng.TestNG.run(TestNG.java:1000)
    at org.gradle.api.internal.tasks.testing.testng.TestNGTestClassProcessor.runTests(TestNGTestClassProcessor.java:141)
    at org.gradle.api.internal.tasks.testing.testng.TestNGTestClassProcessor.stop(TestNGTestClassProcessor.java:90)
    at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:61)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
    at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
    at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
    at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
    at com.sun.proxy.$Proxy2.stop(Unknown Source)
    at org.gradle.api.internal.tasks.testing.worker.TestWorker.stop(TestWorker.java:132)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
    at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
    at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
    at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
    at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:412)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
    at java.base/java.lang.Thread.run(Thread.java:830)
    at ✽.request payload is( .     ) 

功能文件(在请求有效负载处失败):

Scenario: Verify valid login
    Given request payload is
    """
    {
      "username": "user",
      "password": "password"
    }
    """
.....

步骤定义:

Given("request payload is", (String payload) -> {
        });

0 个答案:

没有答案
相关问题