1

I downloaded this test project to learn screenplay with serenity and cucumber

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

I can do clean verify with different profiles on command line as the readme suggests

If I load the same project in intellij and try to run one feature , it results in to NPE

Is there any intellij setting I am missing to run these?

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

Is there anyway to run serenity test in debug mode, so that I can collect more info and open a bug report?

Kalpesh Soni
  • 6,879
  • 2
  • 56
  • 59
  • Any success to use screenplay in IntelliJ? I tried newest version of sereinity and IntelliJ and the problem is still occurring. – mszalbach Dec 07 '16 at 13:44

2 Answers2

1

This link should help, do not forget to give your definitions in glue section of the configuration.

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

fozersahin
  • 98
  • 1
  • 5
  • This part of the linked page was sufficient for me ... in "the 'Edit Configuration Settings' window. Set the main class to 'net.serenitybdd.cucumber.cli.Main'". – user598656 Jun 22 '21 at 15:54
0

I did some tests with my own project and asked on this bug report for serenity. Running the feature files from IntelliJ directly will cause the Cucumber Plugin to set and load the classes. The Plugin did not take into account the needed CucumberWithSerenity runner class and this causes the problems. However you can run them from the IDE by adding an AllRunner class directly in the src/main/java folder:

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

Then the tests can be executed directly from the IDE. You can configure which tests to use which is documented at the_scenario_runner. By changing serenity.test.root like done in the maven profiles you can specify if you want to use the screenplay versions or the page objects.

mszalbach
  • 10,612
  • 1
  • 41
  • 53