Spock Manual Extension
Extension to define manual test case specification using the Spock framwork.
When executing a Specification marked @Manual
the test will be set "ignored" and the block comments will be written to a test plan file.
Example
Given this Specification
package de.assertagile.spockframework.extensions.demonstration
import de.assertagile.spockframework.extensions.Manual
import spock.lang.Issue
import spock.lang.Specification
import spock.lang.Title
@Manual
@Title("My manual spec is manual")
@Issue("STY-4711")
class MyManualSpec extends Specification {
@Issue("http://assertagile.de/issues/BUG-42")
def "this is a manual tested feature description"() {
given: "the user is logged in"
when: "the user clicks the logout button"
then: "the user is at the start page"
and: "the login button is visible"
}
@Issue(["http://assertagile.de/issues/STY-4712", "http://assertagile.de/issues/BUG-666", "http://issues.com/4711"])
def "this is a manual tested feature description with additional information"() {
given: "the user is not logged in"
when: "the user enters unknown credentials"
then: "the user stayed at the start page"
and: "the login button is visible"
}
}
and the following SpockManualConfig.groovy
file:
import de.assertagile.spockframework.extensions.MarkDownTestPlanBuilder
Locale locale = Locale.ENGLISH
String issueTrackerBaseUrl = "http://assertagile.de/issues"
boolean markManualTestsAsExcluded = true
testPlanBuilders = [
new MarkDownTestPlanBuilder("target/test_plan.md", issueTrackerBaseUrl, locale),
new CsvTestPlanBuilder("target/test_plan.csv", issueTrackerBaseUrl, locale)
]
When executing the Specification in your IDE or via mvn test
you will find the following test plan at target/test_plan.md
:
#Manual Test Plan
##My manual spec is manual
[STY-4711](http://assertagile.de/issues/STY-4711)
###this is a manual tested feature description
[BUG-42](http://assertagile.de/issues/BUG-42)
- *Given* the user is logged in
- *When* the user clicks the logout button
- *Then* the user is at the start page
- *And* the login button is visible
###this is a manual tested feature description with additional information
[STY-4712](http://assertagile.de/issues/STY-4712), [BUG-666](http://assertagile.de/issues/BUG-666), [http://issues.com/4711](http://issues.com/4711)
- *Given* the user is not logged in
- *When* the user enters unknown credentials
- *Then* the user stayed at the start page
- *And* the login button is visible
and one more at target/test_plan.csv
"specification";"feature";"steps";"issues"
"My manual spec is manual";"this is a manual tested feature description";"Given the user is logged in
When the user clicks the logout button
Then the user is at the start page
And the login button is visible";"STY-4711 (http://assertagile.de/issues/STY-4711)
BUG-42 (http://assertagile.de/issues/BUG-42)"
"My manual spec is manual";"this is a manual tested feature description with additional information";"Given the user is not logged in
When the user enters unknown credentials
Then the user stayed at the start page
And the login button is visible";"STY-4711 (http://assertagile.de/issues/STY-4711)
STY-4712 (http://assertagile.de/issues/STY-4712), BUG-666 (http://assertagile.de/issues/BUG-666), http://issues.com/4711 (http://issues.com/4711)"
Usage
To use this extension you need to create a Groovy config script in you projects test resources path named SpockManualConfig.groovy
. In default Maven projects the file should be located in src/test/resources
. In order to generate a test plan, you need to configure at least one TestPlanBuilder
.
Extension
Currently there is only MarkDownTestPlanBuilder
and CsvTestPlanBuilder
, but you can always create more. Just extend TestPlanBuilder
and add it to your SpockManualConfig.groovy