您能否在其他嵌套特征文件中重用已经 运行 的测试结果?

Can you reuse results of tests that have already been run in other nested feature files?

我是空手道框架的新手:)

我目前正在研究 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'

所以当我 运行 空手道时,我注意到它 运行 两次,每次嵌套调用一次。

所以我的问题是,有没有一种方法可以重用测试结果,如果它已经 运行 一次,它就不会再次 运行 而是重用结果来自上一个。

我认为您正在寻找 "hooks",因此请参阅文档:https://github.com/intuit/karate#hooks

所以我认为这个模式就是你要找的:

Background:
* def result = callonce read('classpath:Project/Tests/Test01.feature')

Scenario:
* match result.testStatus == 'pass'

我用过Karate.callSingle. Also @PeterThomas' answer regarding Karate Hooks会有帮助

Feature1.feature、Feature2.feature

Scenario: Test01: This is a common test
When def result = karate.callSingle('classpath:Project/Tests/Test01.feature')
Then match result.testStatus == 'pass'

这样,如果您有多个其他嵌套调用,您可以将它们添加到上述模式中