【问题标题】:Why isn't my cucumber feature running为什么我的黄瓜功能没有运行
【发布时间】:2016-08-27 16:54:15
【问题描述】:

有人可以帮助我吗,我无法让步骤定义起作用。我已经截取了 Andoid Studio 工作场所的屏幕截图,因为我认为这比解释这一切更容易。基本上,我想运行功能文件 myfeature.feature,并且当我这样做时,我希望它获取在 MyStepdef 类中定义的步骤。我确信这是一个简单的解决方法,但这对我来说已经好几天了

更新!

我下载了骨架类(按照建议),甚至设法在它自己的 android 工作区中运行它。尝试用我的程序实现,使用骨架中的类,相同的功能,相同的设置,但无法运行。

我尝试从头开始创建功能文件,使用 android 从该功能文件设置 stepdefintions 仍然无法运行它

我的想法是我已经设置了 gradle 来运行另一个自动化测试,其中我遇到了复杂情况,现在我用我发布的“解决方案”让它们变得完美 [//stackoverflow.com/questions/36968728/android -studio-testing-library-dependencies-that-have-been-compiled-using-java/36975041#36975041]
我有一种感觉,与 expresso 配合良好的自动化测试设置在黄瓜功能测试中运行不佳。
每当我添加 jvm (0.5) 并删除排除语句时,旧错误就会回来

  This is caused by library dependencies that have been compiled using Java 8 or above.
If you are using the 'java' gradle plugin in a library submodule add 
targetCompatibility = '1.7'
sourceCompatibility = '1.7'
to that submodule's build.gradle file.
Error:1 error; aborting
:app:transformClassesWithDexForDebugAndroidTest FAILED
Error:Execution failed for task ':app:transformClassesWithDexForDebugAndroidTest'.
> com.android.build.api.transform.TransformException: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_74\bin\java.exe'' finished with non-zero exit value 1*

每当我将排除 cucumber-jvm-deps 应用于依赖项时,我都可以运行 espresso 测试,但不能运行 cucumber.feature - 它要么无法识别步骤,要么使用 JUnit(如在框架中)设置运行我得到一个全新的错误

    "C:\Program Files\Java\jdk1.8.0_91\bin\java" -ea -Didea.launcher.port=7533 "-Didea.launcher.bin.path=C:\Program Files\Android\Android Studio\bin" -Didea.junit.sm_runner -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Android\Android Studio\lib\idea_rt.jar;C:\Program Files\Android\Android Studio\plugins\junit\lib\junit-rt.jar;C:\Users\hbill\AppData\Local\Android\sdk\platforms\android-23\android.jar;C:\Users\hbill\AppData\Local\Android\sdk\platforms\android-23\data\res;C:\Users\hbill\Documents\TheFoodHunt2\app\build\intermediates\classes\debug;C:\Users\hbill\.gradle\caches\modules-2\files-2.1\info.cukes\cucumber-html\0.2.3\624a0c986088e32910336dd77aee5191c04a8201\cucumber-html-0.2.3.jar;C:\Users\hbill\Documents\TheFoodHunt2\app\build\intermediates\exploded-aar\com.android.support.test\runner\0.5\jars\classes.jar;C:\Users\hbill\Documents\TheFoodHunt2\app\build\intermediates\exploded-aar\com.android.support.test\runner\0.5\res;C:\Users\hbill\Documents\TheFoodHunt2\app\build\intermediates\exploded-aar\com.android.support.test.espresso\espresso-idling-resource\2.2.2\res;C:\Users\hbill\Documents\TheFoodHunt2\app\build\intermediates\exploded-aar\com.android.support.test.espresso\espresso-idling-resource\2.2.2\jars\classes.jar;C:\Users\hbill\.gradle\caches\modules-2\files-2.1\org.hamcrest\hamcrest-library\1.3\4785a3c21320980282f9f33d0d1264a69040538f\hamcrest-library-1.3.jar;C:\Users\hbill\.gradle\caches\modules-2\files-2.1\org.hamcrest\hamcrest-integration\1.3\5de0c73fef18917cd85d0ab70bb23818685e4dfd\hamcrest-integration-1.3.jar;C:\Users\hbill\Documents\TheFoodHunt2\app\build\intermediates\exploded-aar\com.android.support\support-v4\23.3.0\jars\classes.jar;C:\Users\hbill\Documents\TheFoodHunt2\app\build\intermediates\exploded-aar\com.android.support\support-v4\23.3.0\jars\libs\internal_impl-23.3.0.jar;C:\Users\hbill\Documents\TheFoodHunt2\app\build\intermediates\exploded-aar\com.android.support\support-v4\23.3.0\res;C:\Users\hbill\.gradle\caches\modules-2\files-2.1\com.google.code.findbugs\jsr305\2.0.1\516c03b21d50a644d538de0f0369c620989cd8f0\jsr305-2.0.1.jar;C:\Users\hbill\AppData\Local\Android\sdk\extras\android\m2repository\com\android\support\support-annotations\23.3.0\support-annotations-23.3.0.jar;C:\Users\hbill\Documents\TheFoodHunt2\app\build\intermediates\exploded-aar\com.android.support\support-vector-drawable\23.3.0\jars\classes.jar;C:\Users\hbill\Documents\TheFoodHunt2\app\build\intermediates\exploded-aar\com.android.support\support-vector-drawable\23.3.0\res;C:\Users\hbill\Documents\TheFoodHunt2\app\build\intermediates\exploded-aar\com.android.support\animated-vector-drawable\23.3.0\jars\classes.jar;C:\Users\hbill\Documents\TheFoodHunt2\app\build\intermediates\exploded-aar\com.android.support\animated-vector-drawable\23.3.0\res;C:\Users\hbill\.gradle\caches\modules-2\files-2.1\info.cukes\gherkin\2.12.2\17138631fa20fd0e44a13e50d6b7be59cee1a94\gherkin-2.12.2.jar;C:\Users\hbill\Documents\TheFoodHunt2\app\build\intermediates\exploded-aar\com.android.support\appcompat-v7\23.3.0\res;C:\Users\hbill\Documents\TheFoodHunt2\app\build\intermediates\exploded-aar\com.android.support\appcompat-v7\23.3.0\jars\classes.jar;C:\Users\hbill\Documents\TheFoodHunt2\app\build\intermediates\exploded-aar\com.android.support.test.espresso\espresso-core\2.2.2\res;C:\Users\hbill\Documents\TheFoodHunt2\app\build\intermediates\exploded-aar\com.android.support.test.espresso\espresso-core\2.2.2\jars\classes.jar;C:\Users\hbill\Documents\TheFoodHunt2\app\build\intermediates\exploded-aar\com.android.support.test\exposed-instrumentation-api-publish\0.5\jars\classes.jar;C:\Users\hbill\Documents\TheFoodHunt2\app\build\intermediates\exploded-aar\com.android.support.test\exposed-instrumentation-api-publish\0.5\res;C:\Users\hbill\Documents\TheFoodHunt2\app\build\intermediates\exploded-aar\com.android.support.test\rules\0.5\res;C:\Users\hbill\Documents\TheFoodHunt2\app\build\intermediates\exploded-aar\com.android.support.test\rules\0.5\jars\classes.jar;C:\Users\hbill\.gradle\caches\modules-2\files-2.1\javax.annotation\javax.annotation-api\1.2\479c1e06db31c432330183f5cae684163f186146\javax.annotation-api-1.2.jar;C:\Users\hbill\.gradle\caches\modules-2\files-2.1\javax.inject\javax.inject\1\6975da39a7040257bd51d21a231b76c915872d38\javax.inject-1.jar;C:\Users\hbill\.gradle\caches\modules-2\files-2.1\info.cukes\cucumber-core\1.2.4\72790b1da44d8d3d2764c6aef29865ee228bbeb1\cucumber-core-1.2.4.jar;C:\Users\hbill\.gradle\caches\modules-2\files-2.1\com.google.guava\guava\17.0\9c6ef172e8de35fd8d4d8783e4821e57cdef7445\guava-17.0.jar;C:\Users\hbill\.gradle\caches\modules-2\files-2.1\info.cukes\cucumber-junit\1.2.4\8a57b68486cff4da4f10019cb9c62c597a6d2861\cucumber-junit-1.2.4.jar;C:\Users\hbill\.gradle\caches\modules-2\files-2.1\info.cukes\cucumber-android\1.2.4\cf6fd6b0de808c6b28bf8e9d22f6572a180930a3\cucumber-android-1.2.4.jar;C:\Users\hbill\.gradle\caches\modules-2\files-2.1\com.squareup\javawriter\2.1.1\67ff45d9ae02e583d0f9b3432a5ebbe05c30c966\javawriter-2.1.1.jar;C:\Users\hbill\.gradle\caches\modules-2\files-2.1\org.hamcrest\hamcrest-core\1.3\42a25dc3219429f0e5d060061f71acb49bf010a0\hamcrest-core-1.3.jar;C:\Users\hbill\.gradle\caches\modules-2\files-2.1\info.cukes\cucumber-java\1.2.4\57cca534b7abe43f6dd7624b90d3d97d33d3023d\cucumber-java-1.2.4.jar;C:\Users\hbill\.gradle\caches\modules-2\files-2.1\junit\junit\4.12\2973d150c0dc1fefe998f834810d68f278ea58ec\junit-4.12.jar;C:\Users\hbill\.gradle\caches\modules-2\files-2.1\info.cukes\cucumber-jvm-deps\1.0.3\cccdeff234db8b12e91ae2529812f1240b4d5603\cucumber-jvm-deps-1.0.3.jar" com.intellij.rt.execution.application.AppMain com.intellij.rt.execution.junit.JUnitStarter -ideVersion5 boo.thefoodhunt.RunCukesTest
!!! JUnit version 3.8 or later expected:

java.lang.RuntimeException: Stub!
    at junit.runner.BaseTestRunner.<init>(BaseTestRunner.java:5)
    at junit.textui.TestRunner.<init>(TestRunner.java:54)
    at junit.textui.TestRunner.<init>(TestRunner.java:48)
    at junit.textui.TestRunner.<init>(TestRunner.java:41)
    at com.intellij.rt.execution.junit.JUnitStarter.junitVersionChecks(JUnitStarter.java:205)
    at com.intellij.rt.execution.junit.JUnitStarter.canWorkWithJUnitVersion(JUnitStarter.java:188)
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:65)
    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:498)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)

Process finished with exit code -3

现在我讨厌被击败,但我认为我只需要离开它并以某种方式绕过它(即使它用于测试课程:/)因为这占用了我很多时间,并且吃我的修订。

我已经拍摄了我的设置的屏幕截图(以防快速修复,愚蠢的错误)

JUnit - Run Setup

Cucumber Feature Setup

TBH 下面关于 CLI 的建议,我不确定这是什么意思,因为这是我第一次尝试设置测试环境,我理解它是设置为测试的主要活动类型被跑? ,但我不知道如何设置它。

等级构建依赖:

  compile 'com.android.support:appcompat-v7:23.3.0'
    androidTestCompile('info.cukes:cucumber-java:1.2.4') {
        exclude module: 'cucumber-jvm-deps'
    }
    androidTestCompile('info.cukes:cucumber-junit:1.2.4') {
        exclude module: 'cucumber-jvm-deps'
    }
    androidTestCompile('info.cukes:cucumber-core:1.2.4') {
        exclude module: 'cucumber-jvm-deps'
    }
    androidTestCompile 'junit:junit:4.12'
    compile 'com.android.support:support-annotations:23.3.0'
    compile 'com.google.guava:guava:17.0'
    androidTestCompile 'com.android.support:support-annotations:23.3.0'
    compile 'info.cukes:gherkin:2.12.2'
    // androidTestCompile 'com.android.support.test:runner:0.4.1'
    androidTestCompile('info.cukes:cucumber-android:1.2.4') {
        exclude module: 'cucumber-jvm-deps'
    }
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
    androidTestCompile 'info.cukes:cucumber-jvm:1.2.4'
    androidTestCompile('info.cukes:cucumber-html:0.2.3') {
        exclude module: 'cucumber-jvm-deps'
    }
    compile 'info.cukes:cucumber-jvm-deps:1.0.3'

【问题讨论】:

  • 屏幕截图在链接中,我还没有达到在我的问题中嵌入任何图像的足够点。

标签: android-studio testing cucumber settings


【解决方案1】:

您看到的消息是步骤未定义但已实现存根。

这告诉我您实现存根的位置不在类路径的正确部分。你的胶水可能有问题。

您希望这些步骤与测试运行程序位于同一包或子包中。那是您调用 Cucumber runner 的类。

我会考虑添加一个注释为 https://github.com/cucumber/cucumber-java-skeleton 的 JUnit 类来运行 Cucumber。

@RunWith(Cucumber.class)
public class RunCukesTest {
}

请注意,这个类必须在测试类路径中。

这与您当前使用 CLI 调用 Cucumber 的方法不同。

【讨论】:

  • 托马斯!您好,再次感谢您的帮助。我会去的
  • Thomas 没有这么幸运,但感谢您抽出宝贵时间,我设法让骨架在自己的工作室工作区中运行,但将其应用于我的项目仍然不行。我已经更新了,但除非我今晚能解决这个问题或明天能快速解决,否则我将不得不错过黄瓜:(
猜你喜欢
  • 2019-01-29
  • 2011-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-13
  • 2017-07-12
  • 1970-01-01
相关资源
最近更新 更多