当我使用afterFeature挂钩调用功能文件进行测试清除时,行为异常。可以正确调用清除功能文件,因为我可以从文件的“背景”部分看到打印内容,但是由于某种原因,方案大纲的执行挂起。
我已经尝试通过Junit5 Runner以及在IntelliJ IDEA中通过右键单击功能文件来运行功能,但是遇到相同的问题,执行挂起。
这是我的主要功能文件:
Feature: To test afterFeature hook
Background:
* def num1 = 100
* def num2 = 200
* def num3 = 300
* def dataForAfterFeature =
"""
[
{"id":'#(num1)'},
{"id":'#(num2)'},
{"id":'#(num3)'}
]
"""
* configure afterFeature = function(){ karate.call('after.feature'); }
Scenario: Test 1
* print 'Hello World 1'
Scenario: Test 2
* print 'Hello World 2'
afterFeature文件:
@ignore
Feature: Called after calling feature run is completed
Background:
* def dynamicData = dataForAfterFeature
* print 'dynamicData: ' + dynamicData
Scenario Outline: Print dynamic data
* print 'From after feature for id: ' + <id>
Examples:
| dynamicData |
执行停滞在方案大纲中。我可以在控制台中看到dynamicData
变量的打印值,但此后没有任何反应。
似乎轮廓循环未开始或已崩溃?由于测试尚未完成或没有错误报告,因此无法从日志中获取详细信息。我还能检查什么或可能是什么问题?
如果不容易重现,建议使用哪种测试清除方法?
[是的,我个人建议始终采用一种预先清理的策略,因为您不能保证会调用一个“ after”挂钩,例如如果机器关闭了。
有时,最简单的选择是作为JUnit测试套件中的普通Java代码执行此操作。因此,使用Runner
后单行也许就足够了。
如果您需要跟踪测试创建的动态数据,这将非常棘手。我要做的是编写一个Java单例,在测试中使用它来“收集”需要删除的ID,然后在JUnit类中使用它。您可以使用@AfterClass
之类的东西。
请尝试按照此处的说明进行复制:@AfterClass