我是空手道框架:)
新手我目前正在查看 https://github.com/intuit/karate/blob/master/karate-demo/src/test/java/demo/callnested/CallNestedRunner.java,我已经想到了一个结构来进行测试。 我想坚持使用空手道进行功能测试,但使用嵌套的特征文件。我说的是这个:
Project
| - Features
| | - Feature1.feature
| | - Feature2.feature
| - Tests
| | - Test01.feature
所以 Feature1.feature 和 Feature2.feature 具有以下代码:
Scenario: Test01: This is a common test
When def result = call read('classpath:Project/Tests/Test01.feature')
Then match result.testStatus == 'pass'
所以当我运行空手道时,我注意到它运行两次,每个嵌套调用一次。
所以我的问题是,有没有办法重用测试结果,这样如果它已经运行过一次,它就不会再次运行它,而是重用前一个的结果。
我认为您正在寻找"钩子",因此请参阅文档:https://github.com/intuit/karate#hooks
所以我认为这种模式就是你要找的:
Background:
* def result = callonce read('classpath:Project/Tests/Test01.feature')
Scenario:
* match result.testStatus == 'pass'
我使用了Karate.callSingle。@PeterThomas关于空手道钩子的回答也会有所帮助
功能1.功能, 功能2.功能
Scenario: Test01: This is a common test
When def result = karate.callSingle('classpath:Project/Tests/Test01.feature')
Then match result.testStatus == 'pass'
这样,如果您有多个其他嵌套调用,则可以将它们添加到上面的模式中