intellij运行宁静黄瓜测试

时间:2016-10-24 21:09:36

标签: java intellij-idea serenity-bdd cucumber-serenity

我下载了这个测试项目来学习平静和黄瓜的剧本

https://github.com/serenity-bdd/screenplay-pattern-todomvc

我可以在命令行上使用不同的配置文件进行干净验证,因为自述文件建议

如果我在intellij中加载相同的项目并尝试运行一个功能,则会导致NPE

是否有任何intellij设置我缺少运行这些设置?

C:\Apps\Java\jdk8\bin\java -Dorg.jetbrains.run.directory=C:\share\_11\__Serenity\screenplay-pattern-todomvc-master\src\test\resources\features\record_todos -Didea.launcher.port=7534 -Didea.launcher.bin.path=C:\Apps\IntelliJIDEA20162\bin -Dfile.encoding=UTF-8 -classpath C:\Apps\Java\jdk8\jre\lib\charsets.jar;C:\Apps\Java\jdk8\jre\lib\deploy.jar;C:\Apps\Java\jdk8\jre\lib\ext\access-bridge-64.jar;C:\Apps\Java\jdk8\jre\lib\ext\cldrdata.jar;C:\Apps\Java\jdk8\jre\lib\ext\dnsns.jar;C:\Apps\Java\jdk8\jre\lib\ext\jaccess.jar;C:\Apps\Java\jdk8\jre\lib\ext\jfxrt.jar;C:\Apps\Java\jdk8\jre\lib\ext\localedata.jar;C:\Apps\Java\jdk8\jre\lib\ext\nashorn.jar;C:\Apps\Java\jdk8\jre\lib\ext\sunec.jar;C:\Apps\Java\jdk8\jre\lib\ext\sunjce_provider.jar;C:\Apps\Java\jdk8\jre\lib\ext\sunmscapi.jar;C:\Apps\Java\jdk8\jre\lib\ext\sunpkcs11.jar;C:\Apps\Java\jdk8\jre\lib\ext\zipfs.jar;C:\Apps\Java\jdk8\jre\lib\javaws.jar;C:\Apps\Java\jdk8\jre\lib\jce.jar;C:\Apps\Java\jdk8\jre\lib\jfr.jar;C:\Apps\Java\jdk8\jre\lib\jfxswt.jar;C:\Apps\Java\jdk8\jre\lib\jsse.jar;C:\Apps\Java\jdk8\jre\lib\management-agent.jar;C:\Apps\Java\jdk8\jre\lib\plugin.jar;C:\Apps\Java\jdk8\jre\lib\resources.jar;C:\Apps\Java\jdk8\jre\lib\rt.jar;C:\share\_11\__Serenity\screenplay-pattern-todomvc-master\target\test-classes;C:\share\_11\__Serenity\screenplay-pattern-todomvc-master\target\classes;C:\Users\RZHHHN\.m2\repository\net\serenity-bdd\serenity-core\1.1.42\serenity-core-1.1.42.jar;C:\Users\RZHHHN\.m2\repository\com\google\guava\guava\19.0\guava-19.0.jar;C:\Users\RZHHHN\.m2\repository\com\google\code\findbugs\jsr305\3.0.1\jsr305-3.0.1.jar;C:\Users\RZHHHN\.m2\repository\com\google\inject\guice\3.0\guice-3.0.jar;C:\Users\RZHHHN\.m2\repository\javax\inject\javax.inject\1\javax.inject-1.jar;C:\Users\RZHHHN\.m2\repository\aopalliance\aopalliance\1.0\aopalliance-1.0.jar;C:\Users\RZHHHN\.m2\repository\cglib\cglib\3.1\cglib-3.1.jar;C:\Users\RZHHHN\.m2\repository\org\ow2\asm\asm\5.0.3\asm-5.0.3.jar;C:\Users\RZHHHN\.m2\repository\commons-codec\commons-codec\1.10\commons-codec-1.10.jar;C:\Users\RZHHHN\.m2\repository\org\objenesis\objenesis\2.1\objenesis-2.1.jar;C:\Users\RZHHHN\.m2\repository\org\slf4j\slf4j-api\1.7.21\slf4j-api-1.7.21.jar;C:\Users\RZHHHN\.m2\repository\xml-apis\xml-apis\1.4.01\xml-apis-1.4.01.jar;C:\Users\RZHHHN\.m2\repository\info\cukes\cucumber-core\1.2.4\cucumber-core-1.2.4.jar;C:\Users\RZHHHN\.m2\repository\info\cukes\cucumber-html\0.2.3\cucumber-html-0.2.3.jar;C:\Users\RZHHHN\.m2\repository\info\cukes\cucumber-jvm-deps\1.0.5\cucumber-jvm-deps-1.0.5.jar;C:\Users\RZHHHN\.m2\repository\info\cukes\gherkin\2.12.2\gherkin-2.12.2.jar;C:\Users\RZHHHN\.m2\repository\commons-logging\commons-logging\1.2\commons-logging-1.2.jar;C:\Users\RZHHHN\.m2\repository\org\mockito\mockito-core\1.10.19\mockito-core-1.10.19.jar;C:\Users\RZHHHN\.m2\repository\net\serenity-bdd\serenity-report-resources\1.1.42\serenity-report-resources-1.1.42.jar;C:\Users\RZHHHN\.m2\repository\com\google\code\gson\gson\2.6.1\gson-2.6.1.jar;C:\Users\RZHHHN\.m2\repository\commons-io\commons-io\2.4\commons-io-2.4.jar;C:\Users\RZHHHN\.m2\repository\com\opera\operadriver\1.5\operadriver-1.5.jar;C:\Users\RZHHHN\.m2\repository\com\opera\operalaunchers\1.1\operalaunchers-1.1.jar;C:\Users\RZHHHN\.m2\repository\com\google\protobuf\protobuf-java\2.4.1\protobuf-java-2.4.1.jar;C:\Users\RZHHHN\.m2\repository\commons-jxpath\commons-jxpath\1.3\commons-jxpath-1.3.jar;C:\Users\RZHHHN\.m2\repository\org\ini4j\ini4j\0.5.2\ini4j-0.5.2.jar;C:\Users\RZHHHN\.m2\repository\org\seleniumhq\selenium\selenium-server\2.53.1\selenium-server-2.53.1.jar;C:\Users\RZHHHN\.m2\repository\com\beust\jcommander\1.48\jcommander-1.48.jar;C:\Users\RZHHHN\.m2\repository\org\bouncycastle\bcprov-jdk15on\1.48\bcprov-jdk15on-1.48.jar;C:\Users\RZHHHN\.m2\repository\org\bouncycastle\bcpkix-jdk15on\1.48\bcpkix-jdk15on-1.48.jar;C:\Users\RZHHHN\.m2\repository\mx4j\mx4j-tools\3.0.1\mx4j-tools-3.0.1.jar;C:\Users\RZHHHN\.m2\repository\org\seleniumhq\selenium\jetty-repacked\9.2.13.v20150730\jetty-repacked-9.2.13.v20150730.jar;C:\Users\RZHHHN\.m2\repository\javax\servlet\javax.servlet-api\3.1.0\javax.servlet-api-3.1.0.jar;C:\Users\RZHHHN\.m2\repository\org\seleniumhq\selenium\jetty-rc-repacked\5\jetty-rc-repacked-5.jar;C:\Users\RZHHHN\.m2\repository\net\jcip\jcip-annotations\1.0\jcip-annotations-1.0.jar;C:\Users\RZHHHN\.m2\repository\org\seleniumhq\selenium\selenium-java\2.53.1\selenium-java-2.53.1.jar;C:\Users\RZHHHN\.m2\repository\org\seleniumhq\selenium\selenium-chrome-driver\2.53.1\selenium-chrome-driver-2.53.1.jar;C:\Users\RZHHHN\.m2\repository\org\seleniumhq\selenium\selenium-remote-driver\2.53.1\selenium-remote-driver-2.53.1.jar;C:\Users\RZHHHN\.m2\repository\org\seleniumhq\selenium\selenium-api\2.53.1\selenium-api-2.53.1.jar;C:\Users\RZHHHN\.m2\repository\org\seleniumhq\selenium\selenium-edge-driver\2.53.1\selenium-edge-driver-2.53.1.jar;C:\Users\RZHHHN\.m2\repository\org\apache\commons\commons-exec\1.3\commons-exec-1.3.jar;C:\Users\RZHHHN\.m2\repository\org\seleniumhq\selenium\selenium-firefox-driver\2.53.1\selenium-firefox-driver-2.53.1.jar;C:\Users\RZHHHN\.m2\repository\org\seleniumhq\selenium\selenium-ie-driver\2.53.1\selenium-ie-driver-2.53.1.jar;C:\Users\RZHHHN\.m2\repository\net\java\dev\jna\jna\4.1.0\jna-4.1.0.jar;C:\Users\RZHHHN\.m2\repository\net\java\dev\jna\jna-platform\4.1.0\jna-platform-4.1.0.jar;C:\Users\RZHHHN\.m2\repository\org\seleniumhq\selenium\selenium-safari-driver\2.53.1\selenium-safari-driver-2.53.1.jar;C:\Users\RZHHHN\.m2\repository\io\netty\netty\3.5.7.Final\netty-3.5.7.Final.jar;C:\Users\RZHHHN\.m2\repository\org\seleniumhq\selenium\selenium-support\2.53.1\selenium-support-2.53.1.jar;C:\Users\RZHHHN\.m2\repository\org\seleniumhq\selenium\selenium-leg-rc\2.53.1\selenium-leg-rc-2.53.1.jar;C:\Users\RZHHHN\.m2\repository\org\yaml\snakeyaml\1.8\snakeyaml-1.8.jar;C:\Users\RZHHHN\.m2\repository\com\codeborne\phantomjsdriver\1.2.1\phantomjsdriver-1.2.1.jar;C:\Users\RZHHHN\.m2\repository\org\seleniumhq\selenium\htmlunit-driver\2.21\htmlunit-driver-2.21.jar;C:\Users\RZHHHN\.m2\repository\io\appium\java-client\4.0.0\java-client-4.0.0.jar;C:\Users\RZHHHN\.m2\repository\commons-validator\commons-validator\1.5.0\commons-validator-1.5.0.jar;C:\Users\RZHHHN\.m2\repository\commons-beanutils\commons-beanutils\1.9.2\commons-beanutils-1.9.2.jar;C:\Users\RZHHHN\.m2\repository\commons-digester\commons-digester\1.8.1\commons-digester-1.8.1.jar;C:\Users\RZHHHN\.m2\repository\org\codehaus\groovy\groovy\2.4.4\groovy-2.4.4.jar;C:\Users\RZHHHN\.m2\repository\net\sf\opencsv\opencsv\2.0\opencsv-2.0.jar;C:\Users\RZHHHN\.m2\repository\commons-beanutils\commons-beanutils-core\1.8.3\commons-beanutils-core-1.8.3.jar;C:\Users\RZHHHN\.m2\repository\joda-time\joda-time\2.7\joda-time-2.7.jar;C:\Users\RZHHHN\.m2\repository\com\thoughtworks\xstream\xstream\1.4.9\xstream-1.4.9.jar;C:\Users\RZHHHN\.m2\repository\xmlpull\xmlpull\1.1.3.1\xmlpull-1.1.3.1.jar;C:\Users\RZHHHN\.m2\repository\xpp3\xpp3_min\1.1.4c\xpp3_min-1.1.4c.jar;C:\Users\RZHHHN\.m2\repository\org\apache\commons\commons-lang3\3.4\commons-lang3-3.4.jar;C:\Users\RZHHHN\.m2\repository\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar;C:\Users\RZHHHN\.m2\repository\org\freemarker\freemarker\2.3.23\freemarker-2.3.23.jar;C:\Users\RZHHHN\.m2\repository\net\sourceforge\jexcelapi\jxl\2.6.12\jxl-2.6.12.jar;C:\Users\RZHHHN\.m2\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\RZHHHN\.m2\repository\org\hamcrest\hamcrest-library\1.3\hamcrest-library-1.3.jar;C:\Users\RZHHHN\.m2\repository\net\sourceforge\htmlunit\htmlunit\2.21\htmlunit-2.21.jar;C:\Users\RZHHHN\.m2\repository\net\sourceforge\htmlunit\htmlunit-core-js\2.17\htmlunit-core-js-2.17.jar;C:\Users\RZHHHN\.m2\repository\net\sourceforge\htmlunit\neko-htmlunit\2.21\neko-htmlunit-2.21.jar;C:\Users\RZHHHN\.m2\repository\xerces\xercesImpl\2.11.0\xercesImpl-2.11.0.jar;C:\Users\RZHHHN\.m2\repository\net\sourceforge\cssparser\cssparser\0.9.18\cssparser-0.9.18.jar;C:\Users\RZHHHN\.m2\repository\org\w3c\css\sac\1.3\sac-1.3.jar;C:\Users\RZHHHN\.m2\repository\org\eclipse\jetty\websocket\websocket-client\9.2.15.v20160210\websocket-client-9.2.15.v20160210.jar;C:\Users\RZHHHN\.m2\repository\org\eclipse\jetty\jetty-util\9.2.15.v20160210\jetty-util-9.2.15.v20160210.jar;C:\Users\RZHHHN\.m2\repository\org\eclipse\jetty\jetty-io\9.2.15.v20160210\jetty-io-9.2.15.v20160210.jar;C:\Users\RZHHHN\.m2\repository\org\eclipse\jetty\websocket\websocket-common\9.2.15.v20160210\websocket-common-9.2.15.v20160210.jar;C:\Users\RZHHHN\.m2\repository\org\eclipse\jetty\websocket\websocket-api\9.2.15.v20160210\websocket-api-9.2.15.v20160210.jar;C:\Users\RZHHHN\.m2\repository\org\apache\httpcomponents\httpclient\4.5.2\httpclient-4.5.2.jar;C:\Users\RZHHHN\.m2\repository\org\apache\httpcomponents\httpcore\4.4.4\httpcore-4.4.4.jar;C:\Users\RZHHHN\.m2\repository\org\apache\httpcomponents\httpmime\4.5.2\httpmime-4.5.2.jar;C:\Users\RZHHHN\.m2\repository\org\fluentlenium\fluentlenium-core\0.10.2\fluentlenium-core-0.10.2.jar;C:\Users\RZHHHN\.m2\repository\com\jhlabs\filters\2.0.235\filters-2.0.235.jar;C:\Users\RZHHHN\.m2\repository\org\asciidoctor\asciidoctor-java-integration\0.1.4\asciidoctor-java-integration-0.1.4.jar;C:\Users\RZHHHN\.m2\repository\org\jruby\jruby-complete\1.7.4\jruby-complete-1.7.4.jar;C:\Users\RZHHHN\.m2\repository\org\imgscalr\imgscalr-lib\4.2\imgscalr-lib-4.2.jar;C:\Users\RZHHHN\.m2\repository\javax\validation\validation-api\1.1.0.Final\validation-api-1.1.0.Final.jar;C:\Users\RZHHHN\.m2\repository\org\hibernate\hibernate-validator\5.1.1.Final\hibernate-validator-5.1.1.Final.jar;C:\Users\RZHHHN\.m2\repository\org\jboss\logging\jboss-logging\3.1.3.GA\jboss-logging-3.1.3.GA.jar;C:\Users\RZHHHN\.m2\repository\com\fasterxml\classmate\1.0.0\classmate-1.0.0.jar;C:\Users\RZHHHN\.m2\repository\javax\el\javax.el-api\2.2.4\javax.el-api-2.2.4.jar;C:\Users\RZHHHN\.m2\repository\org\glassfish\web\javax.el\2.2.4\javax.el-2.2.4.jar;C:\Users\RZHHHN\.m2\repository\xalan\xalan\2.7.2\xalan-2.7.2.jar;C:\Users\RZHHHN\.m2\repository\xalan\serializer\2.7.2\serializer-2.7.2.jar;C:\Users\RZHHHN\.m2\repository\com\jayway\awaitility\awaitility\1.6.3\awaitility-1.6.3.jar;C:\Users\RZHHHN\.m2\repository\com\typesafe\config\1.2.1\config-1.2.1.jar;C:\Users\RZHHHN\.m2\repository\org\jsoup\jsoup\1.8.3\jsoup-1.8.3.jar;C:\Users\RZHHHN\.m2\repository\com\google\jimfs\jimfs\1.0\jimfs-1.0.jar;C:\Users\RZHHHN\.m2\repository\net\serenity-bdd\serenity-junit\1.1.42\serenity-junit-1.1.42.jar;C:\Users\RZHHHN\.m2\repository\net\serenity-bdd\serenity-screenplay\1.1.42\serenity-screenplay-1.1.42.jar;C:\Users\RZHHHN\.m2\repository\net\serenity-bdd\serenity-screenplay-webdriver\1.1.42\serenity-screenplay-webdriver-1.1.42.jar;C:\Users\RZHHHN\.m2\repository\net\serenity-bdd\serenity-cucumber\1.1.10\serenity-cucumber-1.1.10.jar;C:\Users\RZHHHN\.m2\repository\info\cukes\cucumber-java\1.2.4\cucumber-java-1.2.4.jar;C:\Users\RZHHHN\.m2\repository\info\cukes\cucumber-junit\1.2.4\cucumber-junit-1.2.4.jar;C:\Users\RZHHHN\.m2\repository\org\slf4j\slf4j-simple\1.7.7\slf4j-simple-1.7.7.jar;C:\Users\RZHHHN\.m2\repository\junit\junit\4.12\junit-4.12.jar;C:\Users\RZHHHN\.m2\repository\org\assertj\assertj-core\1.7.0\assertj-core-1.7.0.jar;C:\Users\RZHHHN\.m2\repository\com\googlecode\lambdaj\lambdaj\2.3.3\lambdaj-2.3.3.jar;C:\Users\RZHHHN\.m2\repository\cglib\cglib-nodep\2.2\cglib-nodep-2.2.jar;C:\Users\RZHHHN\.m2\repository\org\hamcrest\hamcrest-all\1.3\hamcrest-all-1.3.jar;C:\Apps\IntelliJIDEA20162\plugins\cucumber-java\lib\cucumber-jvm-formatter.jar;C:\Apps\IntelliJIDEA20162\lib\idea_rt.jar com.intellij.rt.execution.application.AppMain cucumber.api.cli.Main --plugin org.jetbrains.plugins.cucumber.java.run.CucumberJvmSMFormatter --monochrome --glue net.serenitybdd.demos.todos.cucumber.steps --glue net.serenitybdd.cucumber.actors C:/share/_11/__Serenity/screenplay-pattern-todomvc-master/src/test/resources/features/record_todos/add_new_items_to_the_todo_list.feature
Testing started at 4:07 PM ...
[main] INFO net.thucydides.core.util.PropertiesFileLocalPreferences - serenity.project.name=Demo Project using Serenity and Cucumber
[main] INFO net.thucydides.core.util.PropertiesFileLocalPreferences - serenity.linked.tags=issue
[main] INFO net.thucydides.core.util.PropertiesFileLocalPreferences - webdriver.driver=chrome
[main] INFO net.thucydides.core.util.PropertiesFileLocalPreferences - webdriver.base.url=http://todomvc.com/examples/angularjs/#/
[main] INFO net.thucydides.core.util.PropertiesFileLocalPreferences - serenity.test.root=net.serenitybdd.demos.todos.features
[main] INFO net.thucydides.core.util.PropertiesFileLocalPreferences - serenity.take.screenshots=BEFORE_AND_AFTER_EACH_STEP
[main] INFO net.thucydides.core.util.PropertiesFileLocalPreferences - serenity.tag.failures=true
[main] INFO net.thucydides.core.util.PropertiesFileLocalPreferences - serenity.browser.width=1280
[main] INFO net.thucydides.core.util.PropertiesFileLocalPreferences - serenity.browser.height=1024
[main] INFO net.thucydides.core.util.PropertiesFileLocalPreferences - webdriver.wait.for.timeout=20000
Starting ChromeDriver 2.24.417431 (9aea000394714d2fbb20850021f6204f2256b9cf) on port 24696
Only local connections are allowed.

java.lang.NullPointerException
at net.thucydides.core.steps.StepEventBus.updateOverallResults(StepEventBus.java:645)
  at net.serenitybdd.screenplay.EventBusInterface.updateOverallResult(EventBusInterface.java:29)
  at net.serenitybdd.screenplay.Actor.perform(Actor.java:109)
  at net.serenitybdd.screenplay.Actor.attemptsTo(Actor.java:80)
  at net.serenitybdd.screenplay.Actor.wasAbleTo(Actor.java:74)
  at net.serenitybdd.demos.todos.cucumber.steps.TodoUserSteps.that_James_has_an_empty_todo_list(TodoUserSteps.java:33)
  at ✽.Given that James has an empty todo list(C:/share/_11/__Serenity/screenplay-pattern-todomvc-master/src/test/resources/features/record_todos/add_new_items_to_the_todo_list.feature:9)

Skipped step

无论如何在调试模式下运行宁静测试,以便我可以收集更多信息并打开错误报告?

2 个答案:

答案 0 :(得分:0)

我用我自己的项目做了一些测试,然后问bug report这个宁静。直接从IntelliJ运行功能文件将导致Cucumber插件设置和加载类。插件没有考虑到所需的CucumberWithSerenity运行器类,这会导致问题。但是,您可以通过直接在src / main / java文件夹中添加AllRunner类来从IDE运行它们:

@RunWith(CucumberWithSerenity.class)
public class AllStories {}

然后可以直接从IDE执行测试。您可以配置要使用的the_scenario_runner中记录的测试。通过更改maven配置文件中的serenity.test.root,您可以指定是否要使用剧本版本或页面对象。

答案 1 :(得分:0)

此链接应该会有所帮助,不要忘记在配置的粘合部分提供您的定义。

https://johnfergusonsmart.com/running-cucumber-serenity-feature-files-directly-intellij/