我希望在一个功能中的每个场景之后执行一些操作(清除cookie,清除数据库等),但aloe_django中没有after.each_feature。你是怎么解决这个问题的?任何建议来处理这个问题。 aloe_django中没有以下钩子。
@before.each_scenario
def setup_some_scenario(scenario):
populate_test_database()
我需要这个,因为我希望在一个功能中有多个场景,当第一个功能完成时我从管理员注销并需要在下一个场景中再次登录(不注销没有帮助),但是在下一个它给出了一个错误,告诉我的凭据无效(在第一个场景中它是有效的)。 当我将这些场景作为不同的功能并重置我的数据库并进行迁移时,它可以正常工作。
我认为当它在一个场景中从一个场景跳转到另一个场景时它会混淆db或者使用不同的场景,所以我需要after.each_scenario()钩子来重置和迁移我的db。
答案 0 :(得分:1)
我在Aloe_django中使用了before / after.each_example()钩子。 您将这段代码放入terrain.py文件中。
@before.each_example
def before_each_example(scenario,outline,steps):
call_command(#your command#)
答案 1 :(得分:0)
You could use @After tag,
Example:
@Clean up
Scenario Outline: eating
Given there are <start> cucumbers
When I eat <eat> cucumbers
Then I should have <left> cucumbers
Examples:
| start | eat | left |
| 12 | 5 | 7 |
| 20 | 5 | 15 |
In step definition,
@After("Clean up")
public void cleanup(){
System.out.println("CLEAN UP RUNNING ");
}
After every scenario, Your test will call this after function and do cleaning job.