after.each_scenario hook在aloe_django中不起作用(不可用)

时间:2015-11-30 11:18:44

标签: django python-3.x bdd lettuce

我希望在一个功能中的每个场景之后执行一些操作(清除cookie,清除数据库等),但aloe_django中没有after.each_feature。你是怎么解决这个问题的?任何建议来处理这个问题。 aloe_django中没有以下钩子。

@before.each_scenario def setup_some_scenario(scenario): populate_test_database()

我需要这个,因为我希望在一个功能中有多个场景,当第一个功能完成时我从管理员注销并需要在下一个场景中再次登录(不注销没有帮助),但是在下一个它给出了一个错误,告诉我的凭据无效(在第一个场景中它是有效的)。 当我将这些场景作为不同的功能并重置我的数据库并进行迁移时,它可以正常工作。

我认为当它在一个场景中从一个场景跳转到另一个场景时它会混淆db或者使用不同的场景,所以我需要after.each_scenario()钩子来重置和迁移我的db。

2 个答案:

答案 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.