Code Monkey home page Code Monkey logo

serenity-jira's People

Contributors

cliviu avatar ireneyu1 avatar rajesh-kumar avatar slawert avatar theovandijk avatar wakaleo avatar yamstranger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

serenity-jira's Issues

Issue in Jira-Thucydides integration

I am trying to integrate Jira with Thucydides. Below are version details:

<thucydides.version>0.9.268</thucydides.version>
<thucydides.jira.version>0.9.268</thucydides.jira.version>

While executing the thucydides stories i am getting the below err. could you please let me know how to fix this?

SEVERE: RuntimeException while executing runnable net.thucydides.plugins.jira.JiraListener$2@4f8c5fe7 with executor com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService@6daa7411
net.thucydides.plugins.jira.model.IssueTrackerUpdateException: Could not update JIRA using URL (https://www.***.com/jira/browse/**rpc/soap/jirasoapservice-v2**)
at net.thucydides.plugins.jira.service.JiraIssueTracker.processJiraException(JiraIssueTracker.java:78)
at net.thucydides.plugins.jira.service.JiraIssueTracker.getCommentsFor(JiraIssueTracker.java:102)
at net.thucydides.plugins.jira.JiraListener.newOrUpdatedCommentFor(JiraListener.java:239)

The serenity-jira-requirements-provider in net.serenity.plugins.jira is not found

From document
http://www.thucydides.info/docs/serenity/#_integrating_with_jira

The serenity-jira-requirements-provider in net.serenity.plugins.jira is not found

Error message

...
Caused by: org.eclipse.aether.transfer.ArtifactNotFoundException: Failure to find net.serenity.plugins.jira:serenity-jira-requirements-provider:jar:1.1.1 in http://dl.bintray.com/serenity/maven was cached in the local repository, resolution will not be reattempted until the update interval of serenity has elapsed or updates are forced
...

I've tried to follow the example pom. But it's error because it can't find the plug-in artefact.
I think we really need this JAR to use JIRA integration feature.

NullPointerException if there is no field named "Description" in jira

Narrative:
As a test developer
I want to use a field "Beschreibung" in the stories in JIRA
In order to describe my story there.
Scenario:
Given there is an field "Beschreibung" configured for stories in JIRA but no field named "Description"
And I set jira.custom.narrative.field=Beschreibung
When I start the test
Then I see the text of field "Beschreibung" in my serenity report
;-)
But instead I get a NullPointerException:

|2016-04-29 13:36:24,273| [pool-8-thread-3] ERROR  net.thucydides.core.requirements.RequirementsTagProvider Tag provider failure
java.lang.NullPointerException: use Optional.orNull() instead of Optional.or(null)
        at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:226)
        at com.google.common.base.Present.or(Present.java:48)
        at net.serenitybdd.plugins.jira.requirements.JIRARequirementsProvider.narativeTextFrom(JIRARequirementsProvider.java:200)
        at net.serenitybdd.plugins.jira.requirements.JIRARequirementsProvider.requirementFrom(JIRARequirementsProvider.java:184)
        at net.serenitybdd.plugins.jira.requirements.JIRARequirementsProvider.getParentRequirementOf(JIRARequirementsProvider.java:281)
        at net.thucydides.core.requirements.RequirementsServiceImplementation.getParentRequirementOf(RequirementsServiceImplementation.java:184)
        at net.thucydides.core.requirements.RequirementsServiceImplementation.getParentRequirementFor(RequirementsServiceImplementation.java:129)
        at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.addParentRequirmentFieldToContext(HtmlAcceptanceTestReporter.java:129)
        at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.addTestOutcomeToContext(HtmlAcceptanceTestReporter.java:123)
        at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.generateReportFor(HtmlAcceptanceTestReporter.java:86)
        at net.thucydides.core.reports.ReportService.generateReportFor(ReportService.java:213)
        at net.thucydides.core.reports.ReportService.access$100(ReportService.java:26)
        at net.thucydides.core.reports.ReportService$1.run(ReportService.java:148)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

The reason seems to be that the method Present::or(default : Present) has a strange precondition: the Parameter "default" must not be null. But it is null for the call
customFieldNameFor(issue, customFieldName.get()).or(issue.getRendered().getDescription()) if there is no field named "Description"

By the way: do I have to add serenity-jira-plugin to the dependencies in my POM?

Use the Feature as link report in JIRA

@wakaleo
Currently when the 2-way Jira integration is used, Serenity will add a link pointing to the first Scenario in a feature in the jira comment.

It would be better that the link points to the Feature, Im working on bug-fixing the Jira integration, but I need some clues on How to get the Feature given a TestOutcome.

JIRA comments for Serenity not appending but overwriting

Hi!
I am trying to get the 2-way connectivity with Serenity & JIRA.
And I am noticing that every time I run a particular story, the comments are updated (which is OK), but it doesn't append the results.
Rather it over writes the entry already there.
Now, what if I have to look at the historical results of this particular issue in JIRA.

Is this something which should work(appending each run results)?

Thanks!

301 erorr thrown when trying to update Jira via Serenity BDD

**We have a valid epic eg the folloiwng query is valid in Jira
issuetype = epic AND project =SAL

OUR SERENITY PROEPRTIES ARE**
serenity.requirements.types=capability,feature,story
jira.url=http://mycompany.atlassian.net
jira.project=SAL
jira.username=myusername
jira.password=mypassword
serenity.public.url=file:///C:/workspace4/SFTestPack/target/site/serenity/
show.pie.charts=true
serenity.jira.workflow.active=true
serenity.jira.workflow=jira-workflow.groovy
serenity.proxy.http=myproxyserver
serenity.proxy.http_port=8080

OUR pom.xml contains

org.glassfish.jersey.core
jersey-common
2.25.1


net.serenity-bdd
serenity-jira-requirements-provider
1.11.0


net.serenity-bdd
serenity-jira-plugin
1.9.0


com.googlecode.lambdaj
lambdaj
2.3.3


com.opencsv
opencsv
${opencsv.version}


com.microsoft.sqlserver
mssql-jdbc
${com.microsoft.sqlserver.version}


net.serenity-bdd
serenity-core
2.0.32


net.serenity-bdd
serenity-cucumber
1.9.23


org.seleniumhq.selenium
selenium-java
${selenium.webdriver.version}



org.slf4j
slf4j-api
1.7.5


ch.qos.logback
logback-classic
1.1.2




validate


src/main/resources
true




org.apache.maven.plugins
maven-jar-plugin
2.5


org.apache.maven.plugins
maven-compiler-plugin
3.1

${project.build.sourceEncoding}
${java.version}
${java.version}
${java.version}
${java.version}
true
true
true



org.apache.maven.plugins
maven-surefire-plugin
2.18

true



net.serenity-bdd.maven.plugins
serenity-maven-plugin
2.0.32



serenity-reports
post-integration-test

aggregate





org.apache.maven.plugins
maven-failsafe-plugin
2.18

    <configuration>
      <includes>
        <include>${serenity-include1}</include>
        <include>${serenity-include2}</include>
        <include>${serenity-include3}</include>
      </includes>
      <systemProperties>
        <!-- ToDo determine provar driver to be passed ..-->
        <webdriver.driver>${webdriver.driver}</webdriver.driver>
        <target_cle_environment>${target_cle_environment}</target_cle_environment>
      </systemProperties>
    </configuration>
    <executions>
      <execution>
        <goals>
          <goal>integration-test</goal>
          <goal>verify</goal>
        </goals>
      </execution>
    </executions>
  </plugin>



</plugins>

JIRA IS NOT BEING UPDATED WHEN ISSUING MVN VERIFY A 301 IS THROWN

[net.thucydides.core.requirements.RequirementsTagProvider:28] - Failed to load requirements: net.serenitybdd.plugins.jira.model.JQLException: net.serenitybdd.plugins.jira.model.JQLException: JIRA query failed: error 301
java.lang.IllegalArgumentException: net.serenitybdd.plugins.jira.model.JQLException: net.serenitybdd.plugins.jira.model.JQLException: JIRA query failed: error 301
at net.serenitybdd.plugins.jira.requirements.JIRARequirementsProvider.getParentRequirementOf(JIRARequirementsProvider.java:266) ~[serenity-jira-requirements-provider-1.11.0.jar:na]
at net.thucydides.core.requirements.ParentRequirementsProvided.forOutcome(ParentRequirementsProvided.java:26) ~[serenity-model-2.0.32.jar:2.0.32]
at net.thucydides.core.requirements.BaseRequirementsService.getParentRequirementOf(BaseRequirementsService.java:156) [serenity-model-2.0.32.jar:2.0.32]
at net.thucydides.core.requirements.BaseRequirementsService.getParentRequirementFor(BaseRequirementsService.java:61) [serenity-model-2.0.32.jar:2.0.32]
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.addParentRequirmentFieldToContext(HtmlAcceptanceTestReporter.java:168) [serenity-reports-2.0.32.jar:2.0.32]
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.addTestOutcomeToContext(HtmlAcceptanceTestReporter.java:162) [serenity-reports-2.0.32.jar:2.0.32]
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.generateReportFor(HtmlAcceptanceTestReporter.java:106) [serenity-reports-2.0.32.jar:2.0.32]
at net.thucydides.core.reports.ReportService.generateReportFor(ReportService.java:239) [serenity-model-2.0.32.jar:2.0.32]
at net.thucydides.core.reports.ReportService.lambda$generateReportsFor$0(ReportService.java:175) [serenity-model-2.0.32.jar:2.0.32]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_161]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_161]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_161]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_161]
at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_161]
Caused by: net.serenitybdd.plugins.jira.model.JQLException: net.serenitybdd.plugins.jira.model.JQLException: JIRA query failed: error 301
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.findByKey(JerseyJiraClient.java:251) ~[serenity-jira-plugin-1.9.0.jar:na]
at net.serenitybdd.plugins.jira.requirements.JIRARequirementsProvider.getParentRequirementOf(JIRARequirementsProvider.java:255) ~[serenity-jira-requirements-provider-1.11.0.jar:na]
... 13 common frames omitted
Caused by: net.serenitybdd.plugins.jira.model.JQLException: JIRA query failed: error 301
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.checkValid(JerseyJiraClient.java:574) ~[serenity-jira-plugin-1.9.0.jar:na]
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.readFieldValues(JerseyJiraClient.java:501) ~[serenity-jira-plugin-1.9.0.jar:na]
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.loadByKey(JerseyJiraClient.java:257) ~[serenity-jira-plugin-1.9.0.jar:na]
at net.serenitybdd.plugins.jira.client.FindByKeyLoader.load(FindByKeyLoader.java:17) ~[serenity-jira-plugin-1.9.0.jar:na]
at net.serenitybdd.plugins.jira.client.FindByKeyLoader.load(FindByKeyLoader.java:8) ~[serenity-jira-plugin-1.9.0.jar:na]
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3529) ~[guava-25.0-jre.jar:na]
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2278) ~[guava-25.0-jre.jar:na]
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2156) ~[guava-25.0-jre.jar:na]
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2046) ~[guava-25.0-jre.jar:na]
at com.google.common.cache.LocalCache.get(LocalCache.java:3948) ~[guava-25.0-jre.jar:na]
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3972) ~[guava-25.0-jre.jar:na]
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4957) ~[guava-25.0-jre.jar:na]
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.findByKey(JerseyJiraClient.java:247) ~[serenity-jira-plugin-1.9.0.jar:na]
... 14 common frames omitted
[WARN ] 2019-01-16 15:11:54,409 [pool-10-thread-2] [net.thucydides.core.requirements.RequirementsTagProvider:28] - Failed to load requirements: net.serenitybdd.plugins.jira.model.JQLException: net.serenitybdd.plugins.jira.model.JQLException: JIRA query failed: error 301
java.lang.IllegalArgumentException: net.serenitybdd.plugins.jira.model.JQLException: net.serenitybdd.plugins.jira.model.JQLException: JIRA query failed: error 301
at net.serenitybdd.plugins.jira.requirements.JIRARequirementsProvider.getParentRequirementOf(JIRARequirementsProvider.java:266) ~[serenity-jira-requirements-provider-1.11.0.jar:na]
at net.thucydides.core.requirements.ParentRequirementsProvided.forOutcome(ParentRequirementsProvided.java:26) ~[serenity-model-2.0.32.jar:2.0.32]
at net.thucydides.core.requirements.BaseRequirementsService.getParentRequirementOf(BaseRequirementsService.java:156) [serenity-model-2.0.32.jar:2.0.32]
at net.thucydides.core.requirements.BaseRequirementsService.getParentRequirementFor(BaseRequirementsService.java:61) [serenity-model-2.0.32.jar:2.0.32]
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.addParentRequirmentFieldToContext(HtmlAcceptanceTestReporter.java:168) [serenity-reports-2.0.32.jar:2.0.32]
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.addTestOutcomeToContext(HtmlAcceptanceTestReporter.java:162) [serenity-reports-2.0.32.jar:2.0.32]
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.generateReportFor(HtmlAcceptanceTestReporter.java:106) [serenity-reports-2.0.32.jar:2.0.32]
at net.thucydides.core.reports.ReportService.generateReportFor(ReportService.java:239) [serenity-model-2.0.32.jar:2.0.32]
at net.thucydides.core.reports.ReportService.lambda$generateReportsFor$0(ReportService.java:175) [serenity-model-2.0.32.jar:2.0.32]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_161]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_161]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_161]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_161]
at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_161]
Caused by: net.serenitybdd.plugins.jira.model.JQLException: net.serenitybdd.plugins.jira.model.JQLException: JIRA query failed: error 301
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.findByKey(JerseyJiraClient.java:251) ~[serenity-jira-plugin-1.9.0.jar:na]
at net.serenitybdd.plugins.jira.requirements.JIRARequirementsProvider.getParentRequirementOf(JIRARequirementsProvider.java:255) ~[serenity-jira-requirements-provider-1.11.0.jar:na]
... 13 common frames omitted
Caused by: net.serenitybdd.plugins.jira.model.JQLException: JIRA query failed: error 301
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.checkValid(JerseyJiraClient.java:574) ~[serenity-jira-plugin-1.9.0.jar:na]
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.readFieldValues(JerseyJiraClient.java:501) ~[serenity-jira-plugin-1.9.0.jar:na]
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.loadByKey(JerseyJiraClient.java:257) ~[serenity-jira-plugin-1.9.0.jar:na]
at net.serenitybdd.plugins.jira.client.FindByKeyLoader.load(FindByKeyLoader.java:17) ~[serenity-jira-plugin-1.9.0.jar:na]
at net.serenitybdd.plugins.jira.client.FindByKeyLoader.load(FindByKeyLoader.java:8) ~[serenity-jira-plugin-1.9.0.jar:na]
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3529) ~[guava-25.0-jre.jar:na]
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2278) ~[guava-25.0-jre.jar:na]
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2156) ~[guava-25.0-jre.jar:na]
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2046) ~[guava-25.0-jre.jar:na]
at com.google.common.cache.LocalCache.get(LocalCache.java:3948) ~[guava-25.0-jre.jar:na]
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3972) ~[guava-25.0-jre.jar:na]
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4957) ~[guava-25.0-jre.jar:na]
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.findByKey(JerseyJiraClient.java:247) ~[serenity-jira-plugin-1.9.0.jar:na]
... 14 common frames omitted
[WARN ] 2019-01-16 15:11:54,409 [pool-10-thread-3] [net.thucydides.core.requirements.RequirementsTagProvider:28] - Failed to load requirements: net.serenitybdd.plugins.jira.model.JQLException: net.serenitybdd.plugins.jira.model.JQLException: JIRA query failed: error 301

Error 405 on requirements provider retrieving jira issues

when running serenity via mvn verify with JIRA configured it fails to retrieve the requirements

Any help / hint appreciated. I some where googled that some JQL features are only supported on Cloudbased Jira whereas we have a company server based installation ... fwiw

serenity.properties
jira.url=https://XXXXXXXXXXXXXX/jira03
jira.project=YYYYY
jira.username=ZZZZZZZZ
jira.password=AAAAAAAA
serenity.requirement.types=Epic,Story
serenity.public.url=http://buildserver.myorg.com/latest/serenity/report

pom deps:
net.serenity-bdd
serenity-core
2.0.55
test

        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-cucumber</artifactId>
        <version>1.9.40</version>
        <scope>test</scope>

        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-jira-requirements-provider</artifactId>
        <version>1.12.0</version>

        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-jira-plugin</artifactId>
        <version>1.12.0</version>

Stacktrace:

2019-07-11 08:54:08 WARN RequirementsTagProvider:28 - Failed to load requirements: net.serenitybdd.plugins.jira.model.JQLException: net.serenitybdd.plugins.jira.model.JQLException: JIRA query failed: error 405
java.lang.IllegalArgumentException: net.serenitybdd.plugins.jira.model.JQLException: net.serenitybdd.plugins.jira.model.JQLException: JIRA query failed: error 405
at net.serenitybdd.plugins.jira.requirements.JIRARequirementsProvider.getParentRequirementOf(JIRARequirementsProvider.java:266)
at net.thucydides.core.requirements.ParentRequirementsProvided.forOutcome(ParentRequirementsProvided.java:26)
at net.thucydides.core.requirements.BaseRequirementsService.getParentRequirementOf(BaseRequirementsService.java:138)
at net.thucydides.core.requirements.BaseRequirementsService.getParentRequirementFor(BaseRequirementsService.java:48)
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.addParentRequirmentFieldToContext(HtmlAcceptanceTestReporter.java:168)
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.addTestOutcomeToContext(HtmlAcceptanceTestReporter.java:162)
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.generateReportFor(HtmlAcceptanceTestReporter.java:106)
at net.thucydides.core.reports.ReportService.generateReportFor(ReportService.java:238)
at net.thucydides.core.reports.ReportService.lambda$generateReportsFor$0(ReportService.java:175)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:835)
Caused by: net.serenitybdd.plugins.jira.model.JQLException: net.serenitybdd.plugins.jira.model.JQLException: JIRA query failed: error 405
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.findByKey(JerseyJiraClient.java:239)
at net.serenitybdd.plugins.jira.requirements.JIRARequirementsProvider.getParentRequirementOf(JIRARequirementsProvider.java:255)
... 13 more
Caused by: net.serenitybdd.plugins.jira.model.JQLException: JIRA query failed: error 405
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.checkValid(JerseyJiraClient.java:562)
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.readFieldValues(JerseyJiraClient.java:489)
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.loadByKey(JerseyJiraClient.java:245)
at net.serenitybdd.plugins.jira.client.FindByKeyLoader.load(FindByKeyLoader.java:17)
at net.serenitybdd.plugins.jira.client.FindByKeyLoader.load(FindByKeyLoader.java:8)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3529)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2278)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2156)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2046)
at com.google.common.cache.LocalCache.get(LocalCache.java:3948)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3972)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4957)
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.findByKey(JerseyJiraClient.java:235)
... 14 more
2019-07-11 08:54:08 WARN RequirementsTagProvider:28 - Failed to load requirements: net.serenitybdd.plugins.jira.model.JQLException: net.serenitybdd.plugins.jira.model.JQLException: JIRA query failed: error 405
java.lang.IllegalArgumentException: net.serenitybdd.plugins.jira.model.JQLException: net.serenitybdd.plugins.jira.model.JQLException: JIRA query failed: error 405
at net.serenitybdd.plugins.jira.requirements.JIRARequirementsProvider.getParentRequirementOf(JIRARequirementsProvider.java:266)
at net.thucydides.core.requirements.ParentRequirementsProvided.forOutcome(ParentRequirementsProvided.java:26)
at net.thucydides.core.requirements.BaseRequirementsService.getParentRequirementOf(BaseRequirementsService.java:138)
at net.thucydides.core.requirements.BaseRequirementsService.getParentRequirementFor(BaseRequirementsService.java:48)
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.addParentRequirmentFieldToContext(HtmlAcceptanceTestReporter.java:168)
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.addTestOutcomeToContext(HtmlAcceptanceTestReporter.java:162)
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.generateReportFor(HtmlAcceptanceTestReporter.java:106)
at net.thucydides.core.reports.ReportService.generateReportFor(ReportService.java:238)
at net.thucydides.core.reports.ReportService.lambda$generateReportsFor$0(ReportService.java:175)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:835)
Caused by: net.serenitybdd.plugins.jira.model.JQLException: net.serenitybdd.plugins.jira.model.JQLException: JIRA query failed: error 405
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.findByKey(JerseyJiraClient.java:239)
at net.serenitybdd.plugins.jira.requirements.JIRARequirementsProvider.getParentRequirementOf(JIRARequirementsProvider.java:255)
... 13 more
Caused by: net.serenitybdd.plugins.jira.model.JQLException: JIRA query failed: error 405
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.checkValid(JerseyJiraClient.java:562)
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.readFieldValues(JerseyJiraClient.java:489)
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.loadByKey(JerseyJiraClient.java:245)
at net.serenitybdd.plugins.jira.client.FindByKeyLoader.load(FindByKeyLoader.java:17)
at net.serenitybdd.plugins.jira.client.FindByKeyLoader.load(FindByKeyLoader.java:8)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3529)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2278)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2156)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2046)
at com.google.common.cache.LocalCache.get(LocalCache.java:3948)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3972)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4957)
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.findByKey(JerseyJiraClient.java:235)
... 14 more
2019-07-11 08:54:10 WARN RequirementsTagProvider:28 - Failed to load requirements: net.serenitybdd.plugins.jira.model.JQLException: net.serenitybdd.plugins.jira.model.JQLException: JIRA query failed: error 405
java.lang.IllegalArgumentException: net.serenitybdd.plugins.jira.model.JQLException: net.serenitybdd.plugins.jira.model.JQLException: JIRA query failed: error 405
at net.serenitybdd.plugins.jira.requirements.JIRARequirementsProvider.getParentRequirementOf(JIRARequirementsProvider.java:266)
at net.thucydides.core.requirements.ParentRequirementsProvided.forOutcome(ParentRequirementsProvided.java:26)
at net.thucydides.core.requirements.BaseRequirementsService.getParentRequirementOf(BaseRequirementsService.java:138)
at net.thucydides.core.requirements.BaseRequirementsService.getAncestorRequirementsFor(BaseRequirementsService.java:78)
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.addBreadcrumbs(HtmlAcceptanceTestReporter.java:198)
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.addParentRequirmentFieldToContext(HtmlAcceptanceTestReporter.java:186)
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.addTestOutcomeToContext(HtmlAcceptanceTestReporter.java:162)
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.generateReportFor(HtmlAcceptanceTestReporter.java:106)
at net.thucydides.core.reports.ReportService.generateReportFor(ReportService.java:238)
at net.thucydides.core.reports.ReportService.lambda$generateReportsFor$0(ReportService.java:175)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:835)
Caused by: net.serenitybdd.plugins.jira.model.JQLException: net.serenitybdd.plugins.jira.model.JQLException: JIRA query failed: error 405
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.findByKey(JerseyJiraClient.java:239)
at net.serenitybdd.plugins.jira.requirements.JIRARequirementsProvider.getParentRequirementOf(JIRARequirementsProvider.java:255)
... 14 more
Caused by: net.serenitybdd.plugins.jira.model.JQLException: JIRA query failed: error 405
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.checkValid(JerseyJiraClient.java:562)
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.readFieldValues(JerseyJiraClient.java:489)
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.loadByKey(JerseyJiraClient.java:245)
at net.serenitybdd.plugins.jira.client.FindByKeyLoader.load(FindByKeyLoader.java:17)
at net.serenitybdd.plugins.jira.client.FindByKeyLoader.load(FindByKeyLoader.java:8)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3529)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2278)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2156)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2046)
at com.google.common.cache.LocalCache.get(LocalCache.java:3948)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3972)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4957)
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.findByKey(JerseyJiraClient.java:235)
... 15 more

Jira jbehave two way integration

With using serenity with jbehave I am able to connect to Jira for one-way navigation where I have a link to the Jira story. However two-way integration where serenity can update the Jira workflow status doesn't work. I use jira on the cloud. Please help

Only the last Jira Issue is updated when running multiple feature files

When running multiple Cucumber feature files with CucumberWithSerenity and maven clean verify only the feature which was executed lastly is updated with comment and transition.
At the beginning of the log files I can see for each feature:

2888 DEBUG n.s.plugins.jira.JiraUpdater: JIRA LISTENER STATUS
2889 DEBUG n.s.plugins.jira.JiraUpdater: JIRA URL: https://jira.xxx.com 
2889 DEBUG n.s.plugins.jira.JiraUpdater: REPORT URL: https://jenkins.xxx.com
2890 DEBUG n.s.plugins.jira.JiraUpdater: WORKFLOW ACTIVE: true 
2890 DEBUG n.s.p.jira.zephyr.ZephyrUpdater: ZEPHYR ACTIVE: false

After each test has been executed the log file says

695588 DEBUG n.s.plugins.jira.JiraUpdater: WORKFLOW TRANSITIONS: [FAILURE:[Test Ready:[Test Failed]], ERROR:[Test Ready:[Test Failed]], COMPROMISED:[Test Ready:[Test Failed]], SKIPPED:[Test Ready:[Test Failed]], PENDING:[Test Ready:[Test Failed]], UNDEFINED:[Test Ready:[Test Failed]], SUCCESS:[Assigned - ready to start:[Start Work], In Review:[Pull Request accepted], In Progress:[Resolve issue], Open:[Assign]]]

which are the transisition specified in my workflow.groovy file.
But only for the last feature I can see:

11849315 INFO  n.s.plugins.jira.JiraUpdater: Updating JIRA issue: XXX-123
11849315 INFO  n.s.plugins.jira.JiraUpdater: JIRA server: Connection to JIRA instance at https://jira.xxx.com with user user.name
11849315 INFO  n.s.plugins.jira.JiraUpdater: Updating comments for issue XXX-123
11849315 INFO  n.s.plugins.jira.JiraUpdater: WIKI Rendering activated: true
11850693 INFO  n.s.plugins.jira.JiraUpdater: Updating status for issue XXX-123 with test result FAILURE
11851871 INFO  n.s.plugins.jira.JiraUpdater: Issue XXX-123 currently has status 'Test Ready'
11851871 INFO  n.s.plugins.jira.JiraUpdater: Found transitions [Test failed] for issue XXX-123

The status of XXX-123 is changed correctly and the comment also works. All requirements are loaded and linked correctly in the generated report, so I don't know why auto-workflow and comment is not working for all other features. If other information is needed, please let me know.

Proxy Auth Settings in Serenity for Connecting JIRA

Please let us know how to set the Proxy Auth configuration in Serenity for connecting JIRA. I have given below and not sure how to provide Auth key. My Java code is working fine when we trying to connect jira with Proxy Auth key. not sure how to do the same in Serenity.Properties file.

serenity.proxy.http=XXXX
serenity.proxy.http_port=80
serenity.proxy.user=XXX
serenity.proxy.password=XXXXX
serenity.proxy.type=1

Update Results in Bulk Manner or Individual Request

Hi @wakaleo,

I was wondering if the implementation of serenity and jira is based on the key set that will send to Jira?

e.g. I have TC-011 as an ID in my test case and since Im using this id in my test framework and eventually available also in the JIRA (Zephyr).

Is it supported the single or bulk sending of results to jira?

JIRACustomFieldsRequirementsProvider cannot be loaded

Hi all,
It seems that for now it is not possible to use JIRACustomFieldsRequirementsProvider

The class itself is located at net.serenitybdd.plugins.jira.requirements
However net.thucydides.core.statistics.service.TagProvider in META-INF/services declares that it should be taken from net.thucydides.plugins.jira.requirements (thucydides is not changed to serenitybdd) and hence test execution fails with java.util.ServiceConfigurationError: net.thucydides.core.statistics.service.TagProvider: Provider net.thucydides.plugins.jira.requirements.JIRACustomFieldsRequirementsProvider not found

Bug: Excessive calls to jira while running a big suite

Hi all,

We are currently using
serenity-core 1.1.34,
serenity-jbehave 1.1.12
serenity-jira-plugin 1.1.2-rc.1

If a running suite consists of several stories than for certain stories comments in jira are being updated several times.
Let's say there are 3 stories in a running suite.

  • story 1 is finished
  • comments for all jiras from story 1 are updated
  • story 2 is finished
  • comments for all jiras from story 1 are updated
  • comments for all jiras from story 2 are updated
  • story 3 is finished
  • comments for all jiras from story 1 are updated
  • comments for all jiras from story 2 are updated
  • comments for all jiras from story 3 are updated

This leads to an enormous amount of time and resoucres while communicating to Jira

thucydides.public.url property considered instead of serenity.public.url

I found that, while trying to set up the two-way integration with JIRA using the latest version of the Serenity-Jira plugin available on MVNRepository (from Jan 2016, here http://mvnrepository.com/artifact/net.serenity-bdd/serenity-jira-plugin), the property 'serenity.public.url' does not work as expected. Instead, 'thucydides.public.url' does work fine and JIRA get the issue updated despite the documentation mentions 'serenity.public.url'.

Digging into the source code I found that the class net.serenitybdd.plugins.jira.JiraListener still uses the Enum value THUCYDIDES_PUBLIC_URL from the net.thucydides.core.ThucydidesSystemProperty Enum (which is part of the Core package and contains many 'serenity' to 'thucydides' translate methods)

I couldn't debug it further, but my gut feeling is that something might not be right in line 93 of net.serenitybdd.plugins.jira.JiraListener:

String reportUrl = environmentVariables.getProperty(ThucydidesSystemProperty.THUCYDIDES_PUBLIC_URL.getPropertyName());

Proxy to connect to JIRA

How can we add the proxy userName & Password for this plugin. I am getting the following exception:
ERROR RequirementsTagProvider - Tag provider failure
java.lang.IllegalArgumentException: net.serenitybdd.plugins.jira.model.JQLException: javax.ws.rs.ProcessingException: java.net.UnknownHostException.

serenity-jira-requirements-provider

Hi ,

My name is Prasad Banala... I am using Serenity - Jbehave ...
In our project we are using Jira to create the user stories in a project and using serenity-jira-requirements-provider to produce the aggregate reports with Jira requirements .

Issue : every year project name changes due to company policy . meaning that for a same project , we will have different names each year in Jira ( Project A, Project A.B Project A.B.C) . Is there a way if i execute Stories from 3 different projects (regression testing) , serenity aggregate reports should show reports for 3 projects with the requirements form Jira .

Regards
Prasad Banala

Epics and Stories Tab in serenity report is not getting displayed

Previously Epics and Stories tab were displayed in Serenity report. Currently its not getting displayed.

I see the below error while building the pom.xml

net.serenitybdd.plugins.jira.model.JQLException: java.lang.NullPointerException
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.findByJQL(JerseyJiraClient.java:128) ~[serenity-jira-plugin-1.8.0.jar:?]
at net.serenitybdd.plugins.jira.requirements.JIRARequirementsProvider.getRequirements(JIRARequirementsProvider.java:114) [serenity-jira-requirements-provider-1.8.0.jar:?]
at net.thucydides.core.requirements.RequirementsProvided.by(RequirementsProvided.java:15) [serenity-core-1.8.19.jar:1.8.19]
at net.thucydides.core.requirements.MultiSourceRequirementsService.getRequirements(MultiSourceRequirementsService.java:46) [serenity-core-1.8.19.jar:1.8.19]
at net.thucydides.core.requirements.BaseRequirementsService.getRequirementTypes(BaseRequirementsService.java:186) [serenity-core-1.8.19.jar:1.8.19]
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.addTestOutcomeToContext(HtmlAcceptanceTestReporter.java:162) [serenity-core-1.8.19.jar:1.8.19]
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.generateReportFor(HtmlAcceptanceTestReporter.java:109) [serenity-core-1.8.19.jar:1.8.19]
at net.thucydides.core.reports.ReportService.generateReportFor(ReportService.java:255) [serenity-core-1.8.19.jar:1.8.19]
at net.thucydides.core.reports.ReportService.access$100(ReportService.java:32) [serenity-core-1.8.19.jar:1.8.19]
at net.thucydides.core.reports.ReportService$1.run(ReportService.java:186) [serenity-core-1.8.19.jar:1.8.19]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_65]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_65]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_65]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_65]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_65]
Caused by: java.lang.NullPointerException
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.convertToComment(JerseyJiraClient.java:300) ~[serenity-jira-plugin-1.8.0.jar:?]
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.commentsIn(JerseyJiraClient.java:290) ~[serenity-jira-plugin-1.8.0.jar:?]
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.convertToIssueSummary(JerseyJiraClient.java:279) ~[serenity-jira-plugin-1.8.0.jar:?]
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.loadByJQLBatches(JerseyJiraClient.java:153) ~[serenity-jira-plugin-1.8.0.jar:?]
at net.serenitybdd.plugins.jira.client.FindByJQLLoaderUsingBatches.load(FindByJQLLoaderUsingBatches.java:17) ~[serenity-jira-plugin-1.8.0.jar:?]
at net.serenitybdd.plugins.jira.client.FindByJQLLoaderUsingBatches.load(FindByJQLLoaderUsingBatches.java:8) ~[serenity-jira-plugin-1.8.0.jar:?]
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3628) ~[guava-20.0.jar:?]
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2336) ~[guava-20.0.jar:?]
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2295) ~[guava-20.0.jar:?]
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2208) ~[guava-20.0.jar:?]
at com.google.common.cache.LocalCache.get(LocalCache.java:4053) ~[guava-20.0.jar:?]
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4057) ~[guava-20.0.jar:?]
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4986) ~[guava-20.0.jar:?]
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.findByJQL(JerseyJiraClient.java:124) ~[serenity-jira-plugin-1.8.0.jar:?]
... 14 more
2018-06-26 15:04:39,347 DEBUG JIRARequirementsProvider [pool-7-thread-2] Loading root requirements done: 0
2018-06-26 15:04:39,352 DEBUG ConcurrentRequirementsLoader [pool-7-thread-2] Loading 0 requirements
2018-06-26 15:04:39,352 DEBUG RequirementsTagProvider [pool-7-thread-2] Requirements found:[]
2018-06-26 15:04:39,353 DEBUG JIRARequirementsProvider [pool-7-thread-2] Find parent requirement in JIRA for SmokeTest for Taxation Event APM
2018-06-26 15:04:39,516 DEBUG JIRARequirementsProvider [pool-7-thread-1] No root requirements found (JQL = issuetype = epic and project=GRK
net.serenitybdd.plugins.jira.model.JQLException: java.lang.NullPointerException
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.findByJQL(JerseyJiraClient.java:128) ~[serenity-jira-plugin-1.8.0.jar:?]
at net.serenitybdd.plugins.jira.requirements.JIRARequirementsProvider.getRequirements(JIRARequirementsProvider.java:114) [serenity-jira-requirements-provider-1.8.0.jar:?]
at net.thucydides.core.requirements.RequirementsProvided.by(RequirementsProvided.java:15) [serenity-core-1.8.19.jar:1.8.19]
at net.thucydides.core.requirements.MultiSourceRequirementsService.getRequirements(MultiSourceRequirementsService.java:46) [serenity-core-1.8.19.jar:1.8.19]
at net.thucydides.core.requirements.BaseRequirementsService.getRequirementTypes(BaseRequirementsService.java:186) [serenity-core-1.8.19.jar:1.8.19]
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.addTestOutcomeToContext(HtmlAcceptanceTestReporter.java:162) [serenity-core-1.8.19.jar:1.8.19]
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.generateReportFor(HtmlAcceptanceTestReporter.java:109) [serenity-core-1.8.19.jar:1.8.19]
at net.thucydides.core.reports.ReportService.generateReportFor(ReportService.java:255) [serenity-core-1.8.19.jar:1.8.19]
at net.thucydides.core.reports.ReportService.access$100(ReportService.java:32) [serenity-core-1.8.19.jar:1.8.19]
at net.thucydides.core.reports.ReportService$1.run(ReportService.java:186) [serenity-core-1.8.19.jar:1.8.19]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_65]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_65]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_65]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_65]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_65]
Caused by: java.lang.NullPointerException
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.convertToComment(JerseyJiraClient.java:300) ~[serenity-jira-plugin-1.8.0.jar:?]
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.commentsIn(JerseyJiraClient.java:290) ~[serenity-jira-plugin-1.8.0.jar:?]
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.convertToIssueSummary(JerseyJiraClient.java:279) ~[serenity-jira-plugin-1.8.0.jar:?]
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.loadByJQLBatches(JerseyJiraClient.java:153) ~[serenity-jira-plugin-1.8.0.jar:?]
at net.serenitybdd.plugins.jira.client.FindByJQLLoaderUsingBatches.load(FindByJQLLoaderUsingBatches.java:17) ~[serenity-jira-plugin-1.8.0.jar:?]
at net.serenitybdd.plugins.jira.client.FindByJQLLoaderUsingBatches.load(FindByJQLLoaderUsingBatches.java:8) ~[serenity-jira-plugin-1.8.0.jar:?]
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3628) ~[guava-20.0.jar:?]
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2336) ~[guava-20.0.jar:?]
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2295) ~[guava-20.0.jar:?]
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2208) ~[guava-20.0.jar:?]
at com.google.common.cache.LocalCache.get(LocalCache.java:4053) ~[guava-20.0.jar:?]
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4057) ~[guava-20.0.jar:?]
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4986) ~[guava-20.0.jar:?]
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.findByJQL(JerseyJiraClient.java:124) ~[serenity-jira-plugin-1.8.0.jar:?]


I am using the following version in my pom.xml file

<properties>
<serenity.version>1.8.19</serenity.version>
<serenity.cucumber.version>1.6.9</serenity.cucumber.version>
</properties>

<plugin>
<groupId>net.serenity-bdd.maven.plugins</groupId>
<artifactId>serenity-maven-plugin</artifactId>
<version>1.8.20</version>
<executions>
<execution>
<id>serenity-reports</id>
<phase>post-integration-test</phase>
<goals>
<goal>aggregate</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-jira-requirements-provider</artifactId>
<version>1.8.0</version>
</dependency>
</dependencies>
</plugin>

<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-core</artifactId>
<version>${serenity.version}</version>
</dependency>
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-cucumber</artifactId>
<version>${serenity.cucumber.version}</version>
</dependency>
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-jira-plugin</artifactId>
<version>1.8.0</version>
</dependency>
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-jira-requirements-provider</artifactId>
<version>1.8.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>htmlunit-driver</artifactId>
<version>2.28.5</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>1.9.5</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>20.0</version>
</dependency>
<dependency>
<groupId>net.serenity-bdd</groupId>
<artifactId>serenity-spring</artifactId>
<version>1.8.19</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-common</artifactId>
<version>2.25.1</version>
</dependency>
`

Kindly provide your thoughts on this issue

Cucumber + Jira integration ticket status workflow update

Hi,

I saw a similar ticket, but it's dead since almost 2 years, so I'm creating a new one.
I've got a problem with two way integration with Jira. I am able to pull requirements, stories and tickets from jira to my reports, and to produce comments under those tickets if necessary. However, the status of the ticket is never updated in Jira.

I'm attaching following files for clarity (all links and usernames had to be erased):
log.txt
pom.txt
serenityproperties.txt

Here's my workflow:

when 'OPEN', {
    'success' should: 'Resolve Issuexx'
}

when 'REOPENED', {
    'success' should: 'Resolve Issue'
}

when 'RESOLVED', {
    'failure' should: 'Reopen Issue'
}

when 'IN PROGRESS', {
    'success' should: ['Stop Progress','Resolve Issue']
}

when 'CLOSED', {
    'failure' should: 'Reopen Issue'
}

I've already tried sticking to the default plugin workflow, changing the cases of the statuses, and also using thucydides properties - nothing seems to work.

JIRA custom JQL

Currently when i get requirements it pulls all the project requirements from JIRA; even for backlog.
I have declared my issuetype as story and project as my JIRA project.
Can i add further filter on other fields? such as Sprint, fix etc.

I am looking to define my own custom field.

How to get the releases tab displayed

Hi,

The releases tab is not displaying in the report. I am using the following entry in the serenity properties file:
serenity.release.types=version

Properties "jira.url", "serenity.pulic.url" doesn't work with serenity.conf file

Hello, i have a problem with two-way Integration with Jira and serenity.conf file.

When I use serenity-jira-plugin with serenity.properties everything works as expected. But it doesn't work when i replace properties in serenity.conf file because jira.url, serenity.issue.tracker.url, serenity.requirement.types doesn't pars without double quotes. And when I include it in double quotes Integration with Jira doesn't work.

What can i do to solve this problem?

Error:
1) Error in custom provider, com.typesafe.config.ConfigException$Parse: src/test/resources/serenity.conf: 16: Expecting close brace } or a comma, got ':' (if you intended ':' to be part of a key or string value, try enclosing the key or value in double quotes, or you may be able to rename the file .properties rather than .conf)

Caused by: com.typesafe.config.ConfigException$Parse: src/test/resources/serenity.conf: 16: Expecting close brace } or a comma, got ':' (if you intended ':' to be part of a key or string value, try enclosing the key or value in double quotes, or you may be able to rename the file .properties rather than .conf)

My serenity.conf file:

environments {
		all {
feature.file.encoding="UTF-8"
serenity.report.encoding="UTF-8"
serenity.project.name="Service Platform"
serenity.maintain.session="true"
serenity.features.directory="features"
report.timeout="60"
jira.url=https://jira.******.ru/jira
jira.project=XXX
jira.username=yyy
jira.password=zzz
serenity.requirement.types=story, task, bug
serenity.jira.alwaysnewcomment=true
serenity.issue.tracker.url="https://jira.*****.ru/*****"
serenity.public.url=https://jenkins.sp.*****.ru/*****
serenity.jira.workflow.active=true
}
}

My dependencies:

<dependency>
	<groupId>net.serenity-bdd</groupId>
	<artifactId>serenity-jira-requirements-provider</artifactId>
	<version>1.12.0</version>
</dependency>
<dependency>
	<groupId>net.serenity-bdd</groupId>
	<artifactId>serenity-jira-plugin</artifactId>
	<version>1.12.0</version>
</dependency>
<serenity-core.version>2.0.70</serenity-core.version>
<serenity-maven-plugin.version>2.0.70</serenity-maven-plugin.version>

Any help appreciated

serenity-jira-requirements-provider not running in Gradle

Hi,
I'm currentliy trying to get the "feature coverage" of my JIRA project. I'm using gradle and added the serenity-jira-requirements-provider, serenity-jira-plugin dependencies to my build.gradle. The test and aggregate tasks are running without any error messages but epics and stories aren't added to my report.
Even falsifying my serenity.properties file on purpose didn't lead to any errors. I'm assuming that the requirements provider isnt't running at all. So my question is what am I doing wrong? What do I have to add/change in my build.gradle to get the requirements provider running? Do you have any working examples to copy from?

Best regards
Tobias

The JIRA integration http calls should follow redirects

The jira-plugin throws a JQLException: 302 when the http request returns a redirect (302) response.
I expect it to follow the redirect.

proposed fix is to add a property to the WebTarget object instructing the http client to follow redirects:

public class JerseyJiraClient {
....
    public Client restClient() {
        return ClientBuilder.newBuilder()
                            .register(HttpAuthenticationFeature.basic(username, password))
                            .property(ClientProperties.FOLLOW_REDIRECTS, Boolean.TRUE)
                            .build();
    }
....
}

JIRA comment not updated

Hi,

First time here and first time user of Serenity BDD so please bear with me. I have followed every example to set two-way communication with JIRA. But this doesn't work as JIRA issue is not updated with test results. I have issue type story in JIRA, which is added to the test as a link @Issue ("#SVC-401").

Please let me know what I can do to solve this problem.

pom.xml file content (partial):


net.serenity-bdd
serenity-core
${serenity.version}
test


net.serenity-bdd
serenity-screenplay
${serenity.version}
test


net.serenity-bdd
serenity-screenplay-webdriver
${serenity.version}
test


net.serenity-bdd
serenity-junit
${serenity.version}
test


org.slf4j
slf4j-simple
1.7.7
test


junit
junit
4.12
test



net.serenity-bdd
serenity-jira-plugin
1.11.0



net.serenity-bdd
serenity-jira-requirements-provider
1.11.0

SearchByKeywordStory.java (partial):
@test
@issue ("#SVC-401")
public void search_results_should_show_the_search_term_in_the_title() {

    givenThat(anna).wasAbleTo(openTheApplication);

serenity.properties (partial):

JIRA setup

jira.url=https://jira.company.com/jira
jira.project=SVC
serenity.public.url=file:///C:/cygwin64/home/user/todomvctests/target/site/serenity
jira.username=username
jira.password=password

Error thrown when running mvn clean verify:
[main] INFO net.serenitybdd.plugins.jira.JiraUpdater - Updating comments for issue SVC-401
[main] INFO net.serenitybdd.plugins.jira.JiraUpdater - WIKI Rendering activated: true
[main] ERROR net.serenitybdd.junit.runners.SerenityRunner - Test event bus error: 255
javax.ws.rs.ProcessingException: 255
at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:261)
at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:684)
at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:681)
at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
at org.glassfish.jersey.internal.Errors.process(Errors.java:228)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:444)
at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:681)
at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:411)
at org.glassfish.jersey.client.JerseyInvocation$Builder.get(JerseyInvocation.java:311)
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.getComments(JerseyJiraClient.java:773)
at net.serenitybdd.plugins.jira.service.JiraIssueTracker.getCommentsFor(JiraIssueTracker.java:93)
at net.serenitybdd.plugins.jira.JiraUpdater.newOrUpdatedCommentFor(JiraUpdater.java:128)
at net.serenitybdd.plugins.jira.JiraUpdater.updateIssue(JiraUpdater.java:93)
at net.serenitybdd.plugins.jira.JiraUpdater.lambda$updateIssueStatus$0(JiraUpdater.java:75)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:291)
at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:401)
at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:734)
at java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:160)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:174)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:583)
at net.serenitybdd.plugins.jira.JiraUpdater.updateIssueStatus(JiraUpdater.java:74)
at net.serenitybdd.plugins.jira.JiraStepListener.testSuiteFinished(JiraStepListener.java:89)
at net.thucydides.core.steps.StepEventBus.testSuiteFinished(StepEventBus.java:552)
at net.serenitybdd.junit.runners.SerenityRunner.notifyTestSuiteFinished(SerenityRunner.java:286)
at net.serenitybdd.junit.runners.SerenityRunner.run(SerenityRunner.java:258)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:367)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:274)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:161)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:290)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:242)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:121)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 255
at org.glassfish.jersey.internal.util.Base64.encode(Base64.java:100)
at org.glassfish.jersey.internal.util.Base64.encodeAsString(Base64.java:169)
at org.glassfish.jersey.client.authentication.BasicAuthenticator.calculateAuthentication(BasicAuthenticator.java:88)
at org.glassfish.jersey.client.authentication.BasicAuthenticator.filterRequest(BasicAuthenticator.java:103)
at org.glassfish.jersey.client.authentication.HttpAuthenticationFilter.filter(HttpAuthenticationFilter.java:187)
at org.glassfish.jersey.client.ClientFilteringStages$RequestFilteringStage.apply(ClientFilteringStages.java:115)
at org.glassfish.jersey.client.ClientFilteringStages$RequestFilteringStage.apply(ClientFilteringStages.java:103)
at org.glassfish.jersey.process.internal.Stages.process(Stages.java:171)
at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:252)
... 39 more
[pool-3-thread-1] WARN net.thucydides.core.requirements.RequirementsTagProvider - Failed to load requirements: net.serenitybdd.plugins.jira.requirements.JIRARequirementsProvider.getParentRequirementOf(Lnet/thucydides/core/model/TestOutcome;)Lcom/google/common/base/
Optional;
java.lang.AbstractMethodError: net.serenitybdd.plugins.jira.requirements.JIRARequirementsProvider.getParentRequirementOf(Lnet/thucydides/core/model/TestOutcome;)Lcom/google/common/base/Optional;
at net.thucydides.core.requirements.ParentRequirementsProvided.forOutcome(ParentRequirementsProvided.java:27)
at net.thucydides.core.requirements.BaseRequirementsService.getParentRequirementOf(BaseRequirementsService.java:146)
at net.thucydides.core.requirements.BaseRequirementsService.getParentRequirementFor(BaseRequirementsService.java:63)
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.addParentRequirmentFieldToContext(HtmlAcceptanceTestReporter.java:170)
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.addTestOutcomeToContext(HtmlAcceptanceTestReporter.java:164)
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.generateReportFor(HtmlAcceptanceTestReporter.java:109)
at net.thucydides.core.reports.ReportService.generateReportFor(ReportService.java:255)
at net.thucydides.core.reports.ReportService.access$100(ReportService.java:32)
at net.thucydides.core.reports.ReportService$1.run(ReportService.java:186)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
[pool-3-thread-1] WARN net.thucydides.core.requirements.RequirementsTagProvider - Failed to load requirements: net.serenitybdd.plugins.jira.requirements.JIRARequirementsProvider.getParentRequirementOf(Lnet/thucydides/core/model/TestOutcome;)Lcom/google/common/base/
Optional;
java.lang.AbstractMethodError: net.serenitybdd.plugins.jira.requirements.JIRARequirementsProvider.getParentRequirementOf(Lnet/thucydides/core/model/TestOutcome;)Lcom/google/common/base/Optional;
at net.thucydides.core.requirements.ParentRequirementsProvided.forOutcome(ParentRequirementsProvided.java:27)
at net.thucydides.core.requirements.BaseRequirementsService.getParentRequirementOf(BaseRequirementsService.java:146)
at net.thucydides.core.requirements.BaseRequirementsService.getAncestorRequirementsFor(BaseRequirementsService.java:93)
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.addBreadcrumbs(HtmlAcceptanceTestReporter.java:199)
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.addParentRequirmentFieldToContext(HtmlAcceptanceTestReporter.java:188)
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.addTestOutcomeToContext(HtmlAcceptanceTestReporter.java:164)
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.generateReportFor(HtmlAcceptanceTestReporter.java:109)
at net.thucydides.core.reports.ReportService.generateReportFor(ReportService.java:255)
at net.thucydides.core.reports.ReportService.access$100(ReportService.java:32)
at net.thucydides.core.reports.ReportService$1.run(ReportService.java:186)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
[pool-3-thread-1] WARN net.thucydides.core.requirements.RequirementsTagProvider - Failed to load requirements: net.serenitybdd.plugins.jira.requirements.JIRARequirementsProvider.getParentRequirementOf(Lnet/thucydides/core/model/TestOutcome;)Lcom/google/common/base/
Optional;
java.lang.AbstractMethodError: net.serenitybdd.plugins.jira.requirements.JIRARequirementsProvider.getParentRequirementOf(Lnet/thucydides/core/model/TestOutcome;)Lcom/google/common/base/Optional;
at net.thucydides.core.requirements.ParentRequirementsProvided.forOutcome(ParentRequirementsProvided.java:27)
at net.thucydides.core.requirements.BaseRequirementsService.getParentRequirementOf(BaseRequirementsService.java:146)
at net.thucydides.core.requirements.BaseRequirementsService.getAncestorRequirementsFor(BaseRequirementsService.java:93)
at net.thucydides.core.tags.BreadcrumbTagFilter.getRequirementBreadcrumbsFrom(BreadcrumbTagFilter.java:52)
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.addBreadcrumbs(HtmlAcceptanceTestReporter.java:200)
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.addParentRequirmentFieldToContext(HtmlAcceptanceTestReporter.java:188)
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.addTestOutcomeToContext(HtmlAcceptanceTestReporter.java:164)
at net.thucydides.core.reports.html.HtmlAcceptanceTestReporter.generateReportFor(HtmlAcceptanceTestReporter.java:109)
at net.thucydides.core.reports.ReportService.generateReportFor(ReportService.java:255)
at net.thucydides.core.reports.ReportService.access$100(ReportService.java:32)
at net.thucydides.core.reports.ReportService$1.run(ReportService.java:186)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 13.635 sec - in net.serenitybdd.tutorials.features.search.SearchByKeywordStory

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[WARNING] File encoding has not been set, using platform encoding Cp1250, i.e. build is platform dependent! The file encoding for reports output files should be provided by the POM property ${project.reporting.outputEncoding}.
[INFO]
[INFO] --- serenity-maven-plugin:1.8.3:aggregate (serenity-reports) @ todomvctests ---
[INFO] current_project.base.dir: C:\cygwin64\home\user\todomvctests
[INFO] Generating test results for 1 tests
[INFO] 0 requirements loaded after 709 ms
[INFO] 0 related requirements found after 714 ms
[INFO] Generating test outcome reports: false
[INFO] Starting generating reports: 773 ms
[INFO] Configured report threads: 20
[INFO] Test results for 1 tests generated in 2016 ms
[INFO]
[INFO] --- maven-failsafe-plugin:2.19.1:verify (default) @ todomvctests ---
[WARNING] File encoding has not been set, using platform encoding Cp1250, i.e. build is platform dependent! The file encoding for reports output files should be provided by the POM property ${project.reporting.outputEncoding}.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 23.428 s
[INFO] Finished at: 2019-03-15T13:50:43+01:00
[INFO] ------------------------------------------------------------------------

Any help appreciated.

Password sent in serenity.properties is not encrypted

I am trying to associate Serenity story to Jira issue , which i am able to integrate.
For this in serenity.properies the properties are defined:
jira.url=https://abcsite/jira
jira.project=FH
jira.username=USER
jira.password=Password

The password that is set here is not encrypted.
Is there a way to send encrypted password to the server.How can this be achieved.

Thanks,
Mehak

Jira test coverage not working

If I put an issue tag into the feature file, the test coverage for that issue in the serenity report is showing as 0%.

image

image

cucumberVersion=1.2.4
junitVersion=4.12
seleniumJava=2.53.0
serenityVersion=1.2.3-rc.5
serenityJiraVersion=1.1.3-rc.2
serenityCucumberVersion=1.1.14

Unable to run 'mvn clean install' on 'serenity-jira-plugin' project

I am trying to make some changes in the JIRA commenting feature in the serenity-jira-plugin project. However, when I checkout the project and try to run 'mvn clean install' is comes up with a lot of errors, most of which are stemming from classes which are unable to be resolved. Please see the attached file for the logs.

Below is my system config,
Apache Maven 3.5.4
Java version: 1.8.0_181, vendor: Oracle Corporation
Default locale: en_AU, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

Serenity-jira-plugin-logs.txt

Missing requirements if project name contains blanks

It took me a long time to understand why the integration with jira did not work properly for me.
The reason was a space character in the name of the project (it is called "Scrum Test" and serves as a evaluation project only).
There are two easy ways to handle this problem:

  1. change the method of JIRARequirementsProvider::rootRequirementsJQL() to
{
        return "issuetype = " + getRootIssueType() + " and project='" + getProjectKey() + "'";
    }

(quotation marks added). This may cause problems if someone uses the second way already:
2. use quotation marks in the serenity.properties file e.g. jira.project='Scrum Test'. Please give a hint in the documentation that you have to use them in case of names with whitespaces!

Now everything works fine. Thank you very much :-)

Serenity With JIRA Integration fails with Error: JIRA query failed: error 500

Hi Cliviu,
I am configuring my features to the new JIRA Project which has the Project name as "XXX QA Automation" and Key as "QAAUTO".

It was previously working fine with my local JIRA.

Serenity Test fails at the end on JIRA process , please see the below error message.
TEST PASSED: Report Generation With Inputs

[main] INFO net.serenitybdd.plugins.jira.JiraListener - Updating JIRA issue: TMW QA Automation-QAAUTO-13
[main] INFO net.serenitybdd.plugins.jira.JiraListener - JIRA server: Connection to JIRA instance at http://corp-jira.tmwsystems.com:8080/secure/Dashboard.jspa with user ggunaseelan
[main] INFO net.serenitybdd.plugins.jira.JiraListener - Updating comments for issue TMW QA Automation-QAAUTO-13
[main] INFO net.serenitybdd.plugins.jira.JiraListener - WIKI Rendering activated: true
Nov 22, 2016 2:33:00 AM com.google.common.util.concurrent.AbstractFuture executeListener
SEVERE: RuntimeException while executing runnable net.serenitybdd.plugins.jira.JiraListener$2@3f3c8b60 with executor com.google.common.util.concurrent.MoreExecutors$DirectExecutorService@16bbaab3
net.serenitybdd.plugins.jira.model.JQLException: JIRA query failed: error 500
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.checkValid(JerseyJiraClient.java:552)
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.getComments(JerseyJiraClient.java:737)
at net.serenitybdd.plugins.jira.service.JiraIssueTracker.getCommentsFor(JiraIssueTracker.java:89)
at net.serenitybdd.plugins.jira.JiraListener.newOrUpdatedCommentFor(JiraListener.java:229)
at net.serenitybdd.plugins.jira.JiraListener.updateIssue(JiraListener.java:202)
at net.serenitybdd.plugins.jira.JiraListener.access$300(JiraListener.java:39)
at net.serenitybdd.plugins.jira.JiraListener$2.run(JiraListener.java:170)
at com.google.common.util.concurrent.MoreExecutors$DirectExecutorService.execute(MoreExecutors.java:310)
at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:817)
at com.google.common.util.concurrent.AbstractFuture.addListener(AbstractFuture.java:595)
at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.addListener(AbstractFuture.java:96)
at net.serenitybdd.plugins.jira.JiraListener.updateIssueStatus(JiraListener.java:166)
at net.serenitybdd.plugins.jira.JiraListener.testSuiteFinished(JiraListener.java:150)
at net.thucydides.core.steps.StepEventBus.testSuiteFinished(StepEventBus.java:507)
at net.serenitybdd.cucumber.SerenityReporter.assureTestSuiteFinished(SerenityReporter.java:537)
at net.serenitybdd.cucumber.SerenityReporter.done(SerenityReporter.java:526)
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 cucumber.runtime.Utils$1.call(Utils.java:37)
at cucumber.runtime.Timeout.timeout(Timeout.java:13)
at cucumber.runtime.Utils.invoke(Utils.java:31)
at cucumber.runtime.RuntimeOptions$1.invoke(RuntimeOptions.java:290)
at com.sun.proxy.$Proxy21.done(Unknown Source)
at cucumber.runtime.junit.JUnitReporter.done(JUnitReporter.java:208)
at cucumber.api.junit.Cucumber.run(Cucumber.java:99)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)

[pool-1-thread-3] INFO net.serenitybdd.plugins.jira.JiraListener - Updating JIRA issue: TMW QA Automation-QAAUTO-13
[pool-1-thread-3] INFO net.serenitybdd.plugins.jira.JiraListener - JIRA server: Connection to JIRA instance at http://corp-jira.tmwsystems.com:8080/secure/Dashboard.jspa with user ggunaseelan
[pool-1-thread-3] INFO net.serenitybdd.plugins.jira.JiraListener - Updating comments for issue TMW QA Automation-QAAUTO-13
[pool-1-thread-3] INFO net.serenitybdd.plugins.jira.JiraListener - WIKI Rendering activated: true
Nov 22, 2016 2:33:00 AM com.google.common.util.concurrent.AbstractFuture executeListener
SEVERE: RuntimeException while executing runnable net.serenitybdd.plugins.jira.JiraListener$2@2a3c186c with executor com.google.common.util.concurrent.MoreExecutors$DirectExecutorService@1c8008cc
net.serenitybdd.plugins.jira.model.JQLException: JIRA query failed: error 500
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.checkValid(JerseyJiraClient.java:552)
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.getComments(JerseyJiraClient.java:737)
at net.serenitybdd.plugins.jira.service.JiraIssueTracker.getCommentsFor(JiraIssueTracker.java:89)
at net.serenitybdd.plugins.jira.JiraListener.newOrUpdatedCommentFor(JiraListener.java:229)
at net.serenitybdd.plugins.jira.JiraListener.updateIssue(JiraListener.java:202)
at net.serenitybdd.plugins.jira.JiraListener.access$300(JiraListener.java:39)
at net.serenitybdd.plugins.jira.JiraListener$2.run(JiraListener.java:170)
at com.google.common.util.concurrent.MoreExecutors$DirectExecutorService.execute(MoreExecutors.java:310)
at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:817)
at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:753)
at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:613)
at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:108)
at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:41)
at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:77)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

POM File :

4.0.0

net.serenity-bdd.demos
cucumber-webtests
0.0.1-SNAPSHOT
jar
AMS Automation

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<serenity.version>1.1.42</serenity.version>
<serenity.cucumber.version>1.1.9</serenity.cucumber.version>
<serenity.maven.version>1.1.7</serenity.maven.version>
<webdriver.driver>chrome</webdriver.driver>




false

central
bintray
http://jcenter.bintray.com





false

central
bintray-plugins
http://jcenter.bintray.com




net.serenity-bdd
serenity-core
${serenity.version}


net.serenity-bdd
serenity-cucumber
${serenity.cucumber.version}
test


net.serenity-bdd
serenity-junit
${serenity.version}


org.slf4j
slf4j-simple
1.7.7


junit
junit
4.12
test


org.assertj
assertj-core
1.7.0


com.googlecode.lambdaj
lambdaj
2.3.3


net.serenity-bdd
serenity-jira-plugin
1.1.2-rc.1


org.codehaus.groovy
groovy-all
1.8.6


net.serenity-bdd
serenity-jira-requirements-provider
1.1.3-rc.1


org.apache.poi
poi
3.12


org.apache.poi
poi-ooxml
3.9


org.apache.xmlbeans
xmlbeans
2.3.0


org.apache.directory.studio
org.dom4j.dom4j
1.6.1





org.apache.maven.plugins
maven-surefire-plugin
2.18

methods
10



maven-failsafe-plugin
2.18


/cucumber/junit//.java
**/cucumber/
.java

true

-Xmx1024m -XX:MaxPermSize=256m

<webdriver.driver>chrome</webdriver.driver>
<maven.test.ignore.failure>true</maven.test.ignore.failure>
<thucydides.estimated.tests.per.requirement>2</thucydides.estimated.tests.per.requirement>





integration-test
verify





org.apache.maven.plugins
maven-compiler-plugin
3.2

1.8
1.8



net.serenity-bdd.maven.plugins
serenity-maven-plugin
${serenity.version}


serenity-reports
post-integration-test

aggregate





net.serenity-bdd
serenity-jira-requirements-provider
1.1.3-rc.1





Cucumber Feature file:
@UniqueBrowser
@issue:QAAUTO-13
Feature: Smoke Test

Scenario: Login
Given I Login to Application
|Username|Password|
|adminXXt|XXdmin |

Serenity Properties:
webdriver.driver = chrome
webdriver.chrome.driver = C:\chromedriver.exe
serenity.project.name = TMW QA Automation
serenity.use.unique.browser = false
serenity.browser,height = 1200
serenity.browser,width = 1200
serenity.dry.run=false
serenity.test.root=net.thucydides.showcase.cucumber.junit
jira.url=http://corp-jira.tmwsystems.com:8080/secure/Dashboard.jspa
jira.project=TMW QA Automation
serenity.project.key=QAAUTO
jira.username=ggunaseelan
jira.password=sample
serenity.public.url =http://localhost:8080/job/JCS-AMS/HTML_Report/
serenity.jira.workflow.active=true
serenity.jira.workflow=jira-workflow.groovy
serenity.release.types=milestone, release, version
webdriver.timeouts.implicitlywait = 10000
serenity.take.screenshots=AFTER_EACH_STEP

Please help me in configuring my project with this new JIRA

JIRA X-Ray add-on integration not working due to its Tests not having a fixVersions field

While integrating Serenity-Cucumber-JIRA, if my JIRA tests are of a X-Ray (Automated, Cucumber) type, which do not have a Fix Versions field, unlike the Generic one, the integration breaks with a Caused by: org.json.JSONException: JSONObject["fixVersions"] not found.

@wakaleo @YamStranger @slawert @cliviu
Can I be advised on how to proceed or can this be fixed/integrated?
Can I override the field like we can override the narrative field or simply ignore it?
Thank you in advance.

Update: Original exception was with serenity-maven-plugin version 1.1.37-rc.6 and
serenity-jira-requirements-provider version 1.0.1.

When testing with serenity-maven-plugin version 1.1.37-rc.6 and serenity-jira-requirements-provider version 1.1.3-rc.1 it gives me NullPointerException. Here's the log:

Execution serenity-reports of goal net.serenity-bdd.maven.plugins:serenity-maven-plugin:1.1.37-rc.6:aggregate failed: net.serenitybdd.plugins.jira.model.JQLException: java.lang.NullPointerException
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
        at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
        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 org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution serenity-reports of goal net.serenity-bdd.maven.plugins:serenity-maven-plugin:1.1.37-rc.6:aggregate failed: net.serenitybdd.plugins.jira.model.JQLException: java.lang.NullPointerException
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:145)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
        ... 20 more
Caused by: java.lang.IllegalArgumentException: net.serenitybdd.plugins.jira.model.JQLException: java.lang.NullPointerException
        at net.serenitybdd.plugins.jira.requirements.JIRARequirementsProvider.getParentRequirementOf(JIRARequirementsProvider.java:265)
        at net.thucydides.core.requirements.RequirementsServiceImplementation.getParentRequirementOf(RequirementsServiceImplementation.java:184)
        at net.thucydides.core.requirements.RequirementsServiceImplementation.getAncestorRequirementsFor(RequirementsServiceImplementation.java:165)
        at net.thucydides.core.reports.TestOutcomes.withRequirementsTags(TestOutcomes.java:360)
        at net.thucydides.core.reports.html.HtmlAggregateStoryReporter.loadTestOutcomesFrom(HtmlAggregateStoryReporter.java:181)
        at net.thucydides.core.reports.html.HtmlAggregateStoryReporter.generateReportsForTestResultsFrom(HtmlAggregateStoryReporter.java:95)
        at net.serenitybdd.maven.plugins.SerenityAggregatorMojo.generateHtmlStoryReports(SerenityAggregatorMojo.java:233)
        at net.serenitybdd.maven.plugins.SerenityAggregatorMojo.execute(SerenityAggregatorMojo.java:172)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
        ... 21 more
Caused by: net.serenitybdd.plugins.jira.model.JQLException: java.lang.NullPointerException
        at net.serenitybdd.plugins.jira.client.JerseyJiraClient.findByKey(JerseyJiraClient.java:238)
        at net.serenitybdd.plugins.jira.requirements.JIRARequirementsProvider.getParentRequirementOf(JIRARequirementsProvider.java:254)
        ... 29 more
Caused by: java.lang.NullPointerException
        at net.serenitybdd.plugins.jira.client.JerseyJiraClient.toListOfVersions(JerseyJiraClient.java:431)
        at net.serenitybdd.plugins.jira.client.JerseyJiraClient.convertToIssueSummary(JerseyJiraClient.java:277)
        at net.serenitybdd.plugins.jira.client.JerseyJiraClient.loadByKey(JerseyJiraClient.java:247)
        at net.serenitybdd.plugins.jira.client.FindByKeyLoader.load(FindByKeyLoader.java:16)
        at net.serenitybdd.plugins.jira.client.FindByKeyLoader.load(FindByKeyLoader.java:7)
        at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3527)
        at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2319)
        at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2282)
        at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2197)
        at com.google.common.cache.LocalCache.get(LocalCache.java:3937)
        at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3941)
        at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4824)
        at net.serenitybdd.plugins.jira.client.JerseyJiraClient.findByKey(JerseyJiraClient.java:234)
        ... 30 more

can't build when using 1.1.1-rc.2

I have upgraded from 1.0.1 to 1.1.1-rc.2 to test serenity-core #136 and had the following findings:

  • groupId is set to repo instead of net.serenity-bdd
  • When I put serenity-jira-requirements-provider on the classpath, gradle complains that it can't find serenity-jira-requirements-provider.jar (note the missing version number in the file name)

First one is an annoyance, but may have been done so on purpose. Second one is blocking (re-)testing.

Any thoughts?

serenity-jira plugin doesn't work with gradle

For some reason I can't get the JIRA integration to work when using the gradle plugin. My target setup would be to run cucumber tests with the JIRA integration. I got serenity to run cucumber test using the file system provider.
I added the serenity-JIRA-plugin and the serenity-JIRA-requirements-plugin to my dependencies, like it is described for the maven plugin, but something seems to be missing. I couldn't get Serenity to contact JIRA. Passing the jira properties (url, username, password, projectkey) via command line or properties file doesn't make a difference. I'm however also not getting any warnings or errors. So it seems to me that the requirements provider doesn't get injected. Any ideas?

Serenity 1.1.13
Serenity-Jira 1.0.1
Serenity-cucumber 1.1.1

Custom field and release tab not working in serenity reports

Hi Team,

I am using following versions to run the reports -

serenity-cucumber:1.1.29
serenity-jira-requirements-provider:1.1.3-rc.5
serenity-maven-plugin:1.2.5-rc.6

with following serenity.properties:
jira.url=xxxx
jira.project=xxxxx
jira.username=xxxx
jira.password=xxxx
jira.custom.field.10804=Acceptance Criteria
jira.custom.narrative.field=Description
serenity.jira.workflow.active=true
serenity.jira.workflow=workflow.groovy
serenity.requirement.types=epic, story

There is no error being thrown but in output folder there is no releases.html file hence "release" tab doesn't work at all. And, in story page I can see description being loaded but acceptance criteria field from JIRA is not read. We are running Jira version 5.

Could you please confirm what combination of version is working?

I will post sample pom.xml in next comment.

Dose requirement coverage actually displays the Acceptance criteria coverage ?

Hi There,

Does requirement coverage actually take care of the Acceptance criteria coverage in Jira?

I am looking for a way to find in reports that how many acceptance criteria are automated and tested for a story.

For example :
@issue:JIRA-123
Assuming a Jira story with following scenarios/ACs populated in "Acceptance Criteria" field

  • This is the first Acceptance Criteria
  • This is the Second Acceptance Criteria
  • This is the Third Acceptance Criteria

Feature file in serenity project is as following
Scenario: This is the First Acceptance Criteria
Given this is first
when this occurs
then this is to be verified

Scenario: This is the Second Acceptance Criteria
Given this is second
when this occurs
then this is to be verified

Scenario: This is the Fourth Acceptance Criteria
Given this is Fourth
when this occurs
then this is to be verified

Then the reports clearly state that one of the AC's () is missing from automated test list or marked manual and is not tested.
Note Acceptance Criteria in italics above.

Thanks

Fails to connect to JIRA behind SNI-compatible SSL Proxy

If you have an Apache server providing virtual SSL hosts via mod_proxy, from the same IP address, the connection to Jira will not work unless its vhost is first in the list.

So, if you have NameVirtualHost enabled, and then this common setup under /etc/httpd/conf.d

abc.com.conf
jira.com.conf

where each file contains the relevant virtual host definition, jiraclent will connect to the server but, because it's not SNI compliant, it will stop at the first (alphanumerically) file and use its config, at which point it will fail:

javax.net.ssl.SSLException: Certificate for jira.com doesn't match any of the subject alternative names: [abc.com]

The above setup requires a client to be SNI-compatible. I believe Serenity is using jiraclient version 0.5 which in turn uses httpclient 4.2.5. SNI compatibility was introduced in httpclient 4.3.6.

I logged this as an issue with the jiraclient project last December (bobcarroll/jira-client#191), but had no response yet. Perhaps it could be fixed locally in Serenity by declaring httpclient 4.3.6 (or later) explicitly as a dependency?

Only the last Jira Issue is updated when running multiple feature files

When running multiple Cucumber feature files with CucumberWithSerenity and maven clean verify, only the feature which was executed lastly is updated with comment and transition.

I somehow searched on the internet and someone suggests to make it as parallel to resolve the issue. However, I think it is not convinced as supposingly I think in case there are multiple feature file executing, all scenarios under each feature should be able to updated to JIRA accordingly instead of just simply upload the last feature file..

Please advise.
Thanks.

Cert based authentication for jira

Hi,

The organisation I work for use cert based authentication to access jira. As a result, I am unable to use the jira plugin to get coverage stats and 1 way integration working. Is this a feature that can be easily built?

Serenity BDD Support For Zephyr

Hi,

Is there any existing support for Zephyr from Serenity BDD. Please help me with steps to configure my Cucumber test integration with Zephyr Test in JIRA.

Regards,
Guru

Valid and updated documentation

Hello. I see that currently may be a zapi support. Is there any well documented resource, to find a way out? Thanks a million.

Provider net.serenitybdd.plugins.jira.JiraStepListener could not be instantiated

Please help to check this issue

[main] ERROR net.thucydides.core.steps.StepEventBus - Could not instantiate listener
java.util.ServiceConfigurationError: net.thucydides.core.steps.StepListener: Provider net.serenitybdd.plugins.jira.JiraStepListener could not be instantiated
at java.util.ServiceLoader.fail(ServiceLoader.java:232)
at java.util.ServiceLoader.access$100(ServiceLoader.java:185)
at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:384)
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
at net.thucydides.core.steps.StepEventBus.getCustomListeners(StepEventBus.java:199)
at net.thucydides.core.steps.StepEventBus.getAllListeners(StepEventBus.java:184)
at net.thucydides.core.steps.StepEventBus.testSuiteStarted(StepEventBus.java:239)
at cucumber.runtime.formatter.SerenityReporter.handleTestSourceRead(SerenityReporter.java:176)
at cucumber.runtime.formatter.SerenityReporter.lambda$new$0(SerenityReporter.java:129)
at cucumber.runner.EventBus.send(EventBus.java:28)
at cucumber.runtime.model.CucumberFeature.sendTestSourceRead(CucumberFeature.java:132)
at cucumber.runtime.RuntimeOptions.cucumberFeatures(RuntimeOptions.java:315)
at cucumber.api.junit.Cucumber.(Cucumber.java:66)
at net.serenitybdd.cucumber.CucumberWithSerenity.(CucumberWithSerenity.java:39)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:364)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:274)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:161)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:290)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:242)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:121)
Caused by: java.lang.NoClassDefFoundError: ch/lambdaj/function/convert/Converter
at net.serenitybdd.plugins.jira.JiraStepListener.(JiraStepListener.java:47)
at net.serenitybdd.plugins.jira.JiraStepListener.(JiraStepListener.java:51)
at sun.reflect.GeneratedConstructorAccessor12.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.Class.newInstance(Class.java:442)
at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:380)
... 29 more
Caused by: java.lang.ClassNotFoundException: ch.lambdaj.function.convert.Converter
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 36 more

SerenityRunner - Test event bus error

Hi. I've problems with two way integrations between serenity and Jira Cloud.

  1. Comment unable to update, and the log error is "ERROR n.s.junit.runners.SerenityRunner - Test event bus error: com.google.common.util.concurrent.MoreExecutors.sameThreadExecutor()Lcom/google/common/util/concurrent/ListeningExecutorService;"

  2. Status Epic failed to update automatically.

Here's my pom.xml

net.serenity-bdd
serenity-jira-plugin
1.1.3-rc.1


net.serenity-bdd
serenity-jira-requirements-provider
1.1.3-rc.1

net.serenity-bdd.maven.plugins serenity-maven-plugin 1.2.5-rc.6 ${tags} serenity-reports post-integration-test aggregate net.serenity-bdd serenity-jira-requirements-provider 1.1.3-rc.1

my-workflow.groovy

when 'TO DO', {
'success' should: 'DONE'
}

when 'TO DO', {
'failure' should: 'IN PROGRESS'
}

serenity.properties
jira.url=https://testingapplications.atlassian.net
jira.project=QT
jira.username=xxx
jira.password=xxx
serenity.requirement.types=epic
serenity.jira.always.create.new.comment=true
serenity.public.url=http://localhost:8080/job/JunitTesting/HTML_20Report/
serenity.compress.filenames=false
serenity.jira.workflow.active=true
serenity.jira.workflow=my-workflow.groovy

Log Error
16:14:22.385 [main] INFO n.s.plugins.jira.JiraUpdater - Updating comments for issue QT-1
16:14:22.385 [main] INFO n.s.plugins.jira.JiraUpdater - WIKI Rendering activated: true
16:14:22.875 [main] ERROR n.s.junit.runners.SerenityRunner - Test event bus error: com.google.common.util.concurrent.MoreExecutors.sameThreadExecutor()Lcom/google/common/util/concurrent/ListeningExecutorService;
java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.sameThreadExecutor()Lcom/google/common/util/concurrent/ListeningExecutorService;
at org.glassfish.jersey.client.ClientAsyncExecutorsFactory$2.getRespondingExecutor(ClientAsyncExecutorsFactory.java:85) ~[jersey-client-2.3.1.jar:na]
at org.glassfish.jersey.process.internal.ExecutorsFactory.getInitialRespondingExecutor(ExecutorsFactory.java:126) ~[jersey-common-2.3.1.jar:na]
at org.glassfish.jersey.client.ClientAsyncExecutorsFactory.(ClientAsyncExecutorsFactory.java:81) ~[jersey-client-2.3.1.jar:na]
at org.glassfish.jersey.client.ClientRuntime.(ClientRuntime.java:101) ~[jersey-client-2.3.1.jar:na]
at org.glassfish.jersey.client.ClientConfig$State.initRuntime(ClientConfig.java:380) ~[jersey-client-2.3.1.jar:na]
at org.glassfish.jersey.client.ClientConfig$State.access$000(ClientConfig.java:85) ~[jersey-client-2.3.1.jar:na]
at org.glassfish.jersey.client.ClientConfig$State$3.get(ClientConfig.java:117) ~[jersey-client-2.3.1.jar:na]
at org.glassfish.jersey.client.ClientConfig$State$3.get(ClientConfig.java:114) ~[jersey-client-2.3.1.jar:na]
at org.glassfish.jersey.internal.util.collection.Values$LazyValue.get(Values.java:311) ~[jersey-common-2.3.1.jar:na]
at org.glassfish.jersey.client.ClientConfig.getRuntime(ClientConfig.java:669) ~[jersey-client-2.3.1.jar:na]
at org.glassfish.jersey.client.ClientRequest.getConfiguration(ClientRequest.java:214) ~[jersey-client-2.3.1.jar:na]
at org.glassfish.jersey.client.JerseyInvocation.validateHttpMethodAndEntity(JerseyInvocation.java:124) ~[jersey-client-2.3.1.jar:na]
at org.glassfish.jersey.client.JerseyInvocation.(JerseyInvocation.java:97) ~[jersey-client-2.3.1.jar:na]
at org.glassfish.jersey.client.JerseyInvocation.(JerseyInvocation.java:90) ~[jersey-client-2.3.1.jar:na]
at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:387) ~[jersey-client-2.3.1.jar:na]
at org.glassfish.jersey.client.JerseyInvocation$Builder.get(JerseyInvocation.java:291) ~[jersey-client-2.3.1.jar:na]
at net.serenitybdd.plugins.jira.client.JerseyJiraClient.getComments(JerseyJiraClient.java:762) ~[serenity-jira-plugin-1.1.3-rc.1.jar:na]
at net.serenitybdd.plugins.jira.service.JiraIssueTracker.getCommentsFor(JiraIssueTracker.java:89) ~[serenity-jira-plugin-1.1.3-rc.1.jar:na]
at net.serenitybdd.plugins.jira.JiraUpdater.newOrUpdatedCommentFor(JiraUpdater.java:169) ~[serenity-jira-plugin-1.1.3-rc.1.jar:na]
at net.serenitybdd.plugins.jira.JiraUpdater.updateIssue(JiraUpdater.java:129) ~[serenity-jira-plugin-1.1.3-rc.1.jar:na]
at net.serenitybdd.plugins.jira.JiraUpdater.access$200(JiraUpdater.java:37) ~[serenity-jira-plugin-1.1.3-rc.1.jar:na]
at net.serenitybdd.plugins.jira.JiraUpdater$2.run(JiraUpdater.java:90) ~[serenity-jira-plugin-1.1.3-rc.1.jar:na]
at com.google.common.util.concurrent.MoreExecutors$DirectExecutorService.execute(MoreExecutors.java:258) ~[guava-25.0-jre.jar:na]
at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1025) ~[guava-25.0-jre.jar:na]
at com.google.common.util.concurrent.AbstractFuture.addListener(AbstractFuture.java:670) ~[guava-25.0-jre.jar:na]
at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.addListener(AbstractFuture.java:105) ~[guava-25.0-jre.jar:na]
at net.serenitybdd.plugins.jira.JiraUpdater.updateIssueStatus(JiraUpdater.java:86) ~[serenity-jira-plugin-1.1.3-rc.1.jar:na]
at net.serenitybdd.plugins.jira.JiraStepListener.testSuiteFinished(JiraStepListener.java:77) ~[serenity-jira-plugin-1.1.3-rc.1.jar:na]
at net.thucydides.core.steps.StepEventBus.testSuiteFinished(StepEventBus.java:616) ~[serenity-core-2.0.91.jar:2.0.91]
at net.serenitybdd.junit.runners.SerenityRunner.notifyTestSuiteFinished(SerenityRunner.java:277) [serenity-junit-2.0.91.jar:2.0.91]
at net.serenitybdd.junit.runners.SerenityRunner.run(SerenityRunner.java:248) [serenity-junit-2.0.91.jar:2.0.91]
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365) [surefire-junit4-2.20.jar:2.20]
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:272) [surefire-junit4-2.20.jar:2.20]
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:236) [surefire-junit4-2.20.jar:2.20]
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159) [surefire-junit4-2.20.jar:2.20]
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:386) [surefire-booter-2.20.jar:2.20]
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:323) [surefire-booter-2.20.jar:2.20]
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:143) [surefire-booter-2.20.jar:2.20]
16:14:23.803 [pool-4-thread-1] INFO n.t.c.r.PackageRequirementsTagProvider - Loading requirements from package requirements at: starter
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 11.444 s - in starter.math.WhenAddingNumbers
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[JENKINS] Recording test results
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:25 min
[INFO] Finished at: 2020-01-31T16:14:40+07:00
[INFO] ------------------------------------------------------------------------
Waiting for Jenkins to finish collecting data
[JENKINS] Archiving E:\Automation Project\serenity-junit-starter\pom.xml to net.serenitybdd.starter/serenity-junit-starter/1.0.0-SNAPSHOT/serenity-junit-starter-1.0.0-SNAPSHOT.pom
channel stopped

any help would really appreciate.

regards,

ClassNotFoundException for lambdaj dependency

Hello,

path: serenity-jira-plugin/src/main/java/net/serenitybdd/plugins/jira/TestResultTally.java

In TestResultTally.java, there is the usage of the lamdaj library imported from: ch.lambdaj.function.convert.Converter; and
static ch.lambdaj.Lambda.convert;

The closest dependency I can find in the maven repository is

        <dependency>
            <groupId>com.googlecode.lambdaj</groupId>
            <artifactId>lambdaj</artifactId>
            <version>2.3.3</version>
        </dependency>

Even after placing this dependency in the client pom, I am getting a ClassNotFoundException. Any idea what the cause might be?

I thought it might be a potential dependency conflict, however on doing mvn dependency:tree I do not see any. Even so, by explicitly declaring the lambdaj dependency in the client pom it should take precedence over the other nested dependencies.

Thank you!

serenity reports dont show stories title and description from jira

As a user I want to create serenity reports with conntection to jira in order to show in the reports the title and the description defined in jira stories.
My stories in jira have a connection to epics.
When I create the serenty reports I only see the scenario description defined in my .features file but no jira description of the story.

Here are my project configuration

  1. **************** articles.feature *****************

@issue:XXX-123
Feature: search for Articles

Scenario: 2 Articles)

Given following Articles:
  | id      | type |
  | 1865624 | Shoes  |
  | 2530481 | Pants  |
  1. ***************** Project Structure *****************************

src/test/resources/features/articles/articles.feature

  1. ************************* pom.xml *********************************************
UTF-8 1.1.36 1.1.9 chrome 1.1.3
<repositories>
    <repository>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <id>central</id>
        <name>bintray</name>
        <url>http://jcenter.bintray.com</url>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <id>central</id>
        <name>bintray-plugins</name>
        <url>http://jcenter.bintray.com</url>
    </pluginRepository>
</pluginRepositories>

<dependencies>

    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-core</artifactId>
        <version>${serenity.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-junit</artifactId>
        <version>${serenity.version}</version>
    </dependency>
    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-cucumber</artifactId>
        <version>${serenity.cucumber.version}</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>${logback.version}</version>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>${logback.version}</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.assertj</groupId>
        <artifactId>assertj-core</artifactId>
        <version>1.7.0</version>
    </dependency>
    <dependency>
        <groupId>com.googlecode.lambdaj</groupId>
        <artifactId>lambdaj</artifactId>
        <version>2.3.3</version>
    </dependency>
    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-jira-plugin</artifactId>
        <version>1.1.2-rc.1</version>
    </dependency>
    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-jira-requirements-provider</artifactId>
        <version>1.1.2-rc.1</version>
    </dependency>


    <dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20160810</version>
    </dependency>

    <dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpasyncclient</artifactId>
    <version>4.1.2</version>
    </dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.8.5</version>
    </dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.8.5</version>
    </dependency>

</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.18.1</version>
            <configuration>
                <skip>true</skip>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-failsafe-plugin</artifactId>
            <version>2.18.1</version>
            <configuration>
                <includes>
                    <include>**/*.java</include>
                </includes>
                <argLine>-Xmx512m</argLine>
                <systemPropertyVariables>
                    <webdriver.driver>${webdriver.driver}</webdriver.driver>
                </systemPropertyVariables>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>integration-test</goal>
                        <goal>verify</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.2</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>net.serenity-bdd.maven.plugins</groupId>
            <artifactId>serenity-maven-plugin</artifactId>
            <version>${serenity.version}</version>
            <executions>
                <execution>
                    <id>serenity-reports</id>
                    <phase>post-integration-test</phase>
                    <goals>
                        <goal>aggregate</goal>
                    </goals>
                </execution>
            </executions>
            <dependencies>
                <dependency>
                    <groupId>net.serenity-bdd</groupId>
                    <artifactId>serenity-jira-requirements-provider</artifactId>
                    <version>1.1.2-rc.1</version>
                </dependency>
                <dependency>
                    <groupId>net.serenity-bdd</groupId>
                    <artifactId>serenity-jira-plugin</artifactId>
                    <version>1.1.2-rc.1</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>  
  1. ****************************** Console Output *******************************************

17:59:52.625 [main] DEBUG n.t.c.r.j.JUnitXMLOutcomeReporter - GENERATING JUNIT REPORTS
17:59:52.625 [pool-2-thread-1] DEBUG n.t.core.reports.ReportService - Processing test outcome search for Articles:2 Articles)
17:59:52.625 [pool-2-thread-1] DEBUG n.t.core.reports.ReportService - net.thucydides.core.reports.xml.XMLTestOutcomeReporter@5b5caf08: Generating report for test outcome: search for Articles:2 Articles)
17:59:52.751 [main] DEBUG n.t.c.r.j.JUnitXMLOutcomeReporter - GENERATING JUNIT REPORT SERENITY-JUNIT-5d687d88f2d07cd9ae1a21f9c29f5bc49e0e1a38886c2cbdfb2b6442e17a2960.xml using temporary file target\site\serenity\SERENITY-JUNIT-5d687d88f2d07cd9ae1a21f9c29f5bc49e0e1a38886c2cbdfb2b6442e17a2960.xmlb8bf607e-2050-4b5e-9bc4-2b6cdc97878f
17:59:52.764 [pool-2-thread-1] DEBUG n.t.c.r.xml.XMLTestOutcomeReporter - Generating XML report for 2 Articles) to file D:\git\acceptance_tests\serenity\target\site\serenity\5d687d88f2d07cd9ae1a21f9c29f5bc49e0e1a38886c2cbdfb2b6442e17a2960.xml (using temp file D:\git\acceptance_tests\serenity\target\site\serenity\5d687d88f2d07cd9ae1a21f9c29f5bc49e0e1a38886c2cbdfb2b6442e17a2960.xml558ab3f6-3994-425a-94e6-3bfd8cb1d9b0)
17:59:52.801 [pool-2-thread-1] DEBUG n.t.c.r.xml.XMLTestOutcomeReporter - XML report generated (D:\git\acceptance_tests\serenity\target\site\serenity\5d687d88f2d07cd9ae1a21f9c29f5bc49e0e1a38886c2cbdfb2b6442e17a2960.xml bytes) 0
17:59:52.806 [pool-2-thread-1] DEBUG n.t.core.reports.ReportService - Processing test outcome search for Articles:2 Articles) done
17:59:52.952 [main] DEBUG n.t.core.reports.ReportService - Reports generated in: 328 ms
17:59:52.952 [main] DEBUG n.t.core.reports.ReportService - Generating reports for 1 test outcomes using: net.thucydides.core.reports.json.JSONTestOutcomeReporter@781a9412
17:59:52.952 [main] DEBUG n.t.c.r.j.JUnitXMLOutcomeReporter - GENERATING JUNIT REPORTS
17:59:52.962 [main] DEBUG n.t.c.r.j.JUnitXMLOutcomeReporter - GENERATING JUNIT REPORT SERENITY-JUNIT-5d687d88f2d07cd9ae1a21f9c29f5bc49e0e1a38886c2cbdfb2b6442e17a2960.xml using temporary file target\site\serenity\SERENITY-JUNIT-5d687d88f2d07cd9ae1a21f9c29f5bc49e0e1a38886c2cbdfb2b6442e17a2960.xmldbb0efa3-553b-44e6-a0b1-9d5068e46946
17:59:52.963 [pool-2-thread-2] DEBUG n.t.core.reports.ReportService - Processing test outcome search for Articles:2 Articles)
17:59:52.964 [pool-2-thread-2] DEBUG n.t.core.reports.ReportService - net.thucydides.core.reports.json.JSONTestOutcomeReporter@781a9412: Generating report for test outcome: search for Articles:2 Articles)
17:59:52.971 [pool-2-thread-2] DEBUG n.t.c.r.json.JSONTestOutcomeReporter - Generating JSON report for 2 Articles) to file D:\git\acceptance_tests\serenity\target\site\serenity\5d687d88f2d07cd9ae1a21f9c29f5bc49e0e1a38886c2cbdfb2b6442e17a2960.json (using temp file D:\git\acceptance_tests\serenity\target\site\serenity\5d687d88f2d07cd9ae1a21f9c29f5bc49e0e1a38886c2cbdfb2b6442e17a2960.jsonea9473b2-3b0c-4102-9125-bce66f8f3f78)
17:59:52.995 [pool-2-thread-2] DEBUG n.t.core.reports.ReportService - Processing test outcome search for Articles:2 Articles) done
17:59:52.995 [main] DEBUG n.t.core.reports.ReportService - Reports generated in: 43 ms
17:59:52.995 [main] DEBUG n.t.core.reports.ReportService - Generating reports for 1 test outcomes using: net.thucydides.core.reports.html.HtmlAcceptanceTestReporter@247667dd
17:59:52.995 [main] DEBUG n.t.c.r.j.JUnitXMLOutcomeReporter - GENERATING JUNIT REPORTS
17:59:52.995 [pool-2-thread-3] DEBUG n.t.core.reports.ReportService - Processing test outcome search for Articles:2 Articles)
17:59:52.996 [pool-2-thread-3] DEBUG n.t.core.reports.ReportService - net.thucydides.core.reports.html.HtmlAcceptanceTestReporter@247667dd: Generating report for test outcome: search for Articles:2 Articles)
17:59:52.996 [main] DEBUG n.t.c.r.j.JUnitXMLOutcomeReporter - GENERATING JUNIT REPORT SERENITY-JUNIT-5d687d88f2d07cd9ae1a21f9c29f5bc49e0e1a38886c2cbdfb2b6442e17a2960.xml using temporary file target\site\serenity\SERENITY-JUNIT-5d687d88f2d07cd9ae1a21f9c29f5bc49e0e1a38886c2cbdfb2b6442e17a2960.xml25d14d47-7136-47e7-9b40-b877611242dc
17:59:52.997 [pool-2-thread-3] DEBUG n.t.c.r.RequirementsTagProvider - Reading requirements from net.serenitybdd.plugins.jira.requirements.JIRARequirementsProvider@32c8a4aa
17:59:52.997 [pool-2-thread-3] DEBUG n.s.p.j.r.JIRARequirementsProvider - Loading root requirements: issuetype = epic and project=XXX
17:59:53.615 [pool-2-thread-3] DEBUG n.s.p.jira.client.JerseyJiraClient - Count by JQL for issuetype = epic and project=XXX
17:59:53.616 [pool-2-thread-3] DEBUG n.s.p.j.r.JIRARequirementsProvider - Loading root requirements done: 0
17:59:53.618 [pool-2-thread-3] DEBUG n.s.p.j.r.ConcurrentRequirementsLoader - Loading 0 requirements
17:59:53.618 [pool-2-thread-3] DEBUG n.t.c.r.RequirementsTagProvider - Requirements found:[]
17:59:53.618 [pool-2-thread-3] DEBUG n.s.p.j.r.JIRARequirementsProvider - Find parent requirement in JIRA for 2 Articles)
17:59:53.976 [pool-2-thread-3] DEBUG n.s.p.j.r.JIRARequirementsProvider - Parent found: IssueSummary{key='XXX-123', summary='User Story for founding 2 Articles'}
17:59:55.311 [pool-2-thread-3] DEBUG n.t.c.r.h.HtmlAcceptanceTestReporter - GENERATING HTML REPORT FOR search for Articles:2 Articles) => 5d687d88f2d07cd9ae1a21f9c29f5bc49e0e1a38886c2cbdfb2b6442e17a2960.html
17:59:55.321 [pool-2-thread-3] DEBUG n.t.core.reports.ReportService - Processing test outcome search for Articles:2 Articles) done
17:59:55.321 [main] DEBUG n.t.core.reports.ReportService - Reports generated in: 2326 msateway check:2 medications are entered in the check (Interaction-10) done
17:52:53.058 [main] DEBUG n.t.core.reports.ReportService - Reports generated in: 1303 ms

Generating HTML Story Reports from D:\xxx\target\site\serenity
Generating HTML Story Reports to D:\xxx\target\site\serenity
Merging requirements = []
Merged requirements set = []
GENERATE CUSTOM REPORTS

JIRA Information Missing

I am trying to integrate the serenity jira plugins in order to generate a report containing Feature Coverage for my JIRA project. I am using the latest stable build of serenity ( 1.2.2 ) and the latest release of the serenity jira plugins (1.1.3-rc.2). My report is pulling in the Story titles for any JIRA Stories that I link with the @issue tag in my test code and inserting a link to the JIRA Story on the individual test results. It is not pulling in the Description or Acceptance Criteria text from the JIRA cards as shown in the Serenity Reference manual (Figure 43), nor is it pulling in the JIRA Stories that do not have tests (as seen in Figure 41) to show the gaps in coverage. I'm only getting a Requirements tab in my report ( no Stories tab ), and it doesn't have any JIRA specific information, it just shows a test count and the tests that were run.

I've defined the following properties in serenity.properties file:

jira.url=http://localhost:7070
jira.project=VDM2B
jira.username=myAdminUsername
jira.password=myAdminPassword
jira.custom.field.1=Acceptance Criteria

My test class looks like this:

@Issue("VDM2B-2")
@RunWith(SerenityRunner.class)
public class UserStory_432300 {
    @Test
    @Title("Scenario 1 - My scenario definition")
    public void scenario_1() {
        //Test code here
    }
}

Excerpt from my pom for plugin implementation below:

<build>
        <plugins>
            <plugin>
                <groupId>net.serenity-bdd.maven.plugins</groupId>
                <artifactId>serenity-maven-plugin</artifactId>
                <version>1.2.2</version>
                <dependencies>
                    <dependency>
                        <groupId>net.serenity-bdd</groupId>
                        <artifactId>serenity-jira-requirements-provider</artifactId>
                        <version>1.1.3-rc.2</version>
                    </dependency>
                    <dependency>
                        <groupId>net.serenity-bdd</groupId>
                        <artifactId>serenity-jira-plugin</artifactId>
                        <version>1.1.3-rc.2</version>
                    </dependency>
                </dependencies>
                <executions>
                <execution>
                    <id>serenity-reports</id>
                    <phase>post-integration-test</phase>
                    <goals>
                        <goal>aggregate</goal>
                    </goals>
                </execution>
                </executions>
             </plugin>
         </plugins>
</build>

The number of stories in JIRA is not the same in the reported output

Example, An epic has 100 stories but the report only links 50 stores.

Found that in JerseyJiraClient

 if (batchSize > 0) {
            target = target.queryParam("maxResults", batchSize);
 }
Response response = target.request().get();

When batch size is 0, response returned from is jira is maxResults 50, and total greater than 50.
In my case total 72.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.