Robotframework 如果所有以前的测试都已通过,则运行测试

Robotframework 如果所有以前的测试都已通过,则运行测试,robotframework,Robotframework,TL:DR; 如果之前的所有测试都通过了,我想运行一个测试,否则跳到下一个测试 我有一个带有几个测试的序列: Test A, Test B and Test C 如果所有这些测试都通过了,我想运行测试D。我找到了两个在我的应用程序中不起作用的解决方案 使用--exitonfailure运行robot,以在第一次失败测试时停止。这里的问题是,我想记录所有测试,无论它们通过还是失败,以供将来参考和统计 将测试D作为关键字,如果所有测试都通过,则使用Run关键字|测试D在套件拆卸中。这里的问题是测

TL:DR; 如果之前的所有测试都通过了,我想运行一个测试,否则跳到下一个测试

我有一个带有几个测试的序列:

Test A, Test B and Test C 
如果所有这些测试都通过了,我想运行测试D。我找到了两个在我的应用程序中不起作用的解决方案

  • 使用
    --exitonfailure
    运行robot,以在第一次失败测试时停止。这里的问题是,我想记录所有测试,无论它们通过还是失败,以供将来参考和统计

  • 将测试D作为关键字,如果所有测试都通过,则使用
    Run关键字|测试D
    在套件拆卸中。这里的问题是测试是在GUI中运行的,测试在GUI中运行时会显示出来,运行测试a等等。如果我将测试D放在Suite Teardown中,如果失败,它将不可见


  • 基本上,如果所有测试都通过了,我想要一个类似于
    Run关键字的函数| Test D
    ,它在拆卸之外工作。

    一旦测试套件启动,您就不能跳过测试。您最好添加一个关键字,该关键字根据另一个测试的结果导致测试通过或失败,然后在测试设置中调用该关键字

    跳过测试的能力已经讨论了很多年了,但是在我写这篇文章的时候,核心团队仍然对添加该特性犹豫不决

    目前,robot框架票证跟踪系统中有一个针对该功能的开放票证,对此进行了大量讨论。看


    对于一个库的实现,如果前一个测试失败,它将使您的测试失败,请参见此问题。它应该是一个相当简单的修改,以使它通过测试,而不是导致它失败

    一旦测试套件启动,就不能跳过测试。您最好添加一个关键字,该关键字根据另一个测试的结果导致测试通过或失败,然后在测试设置中调用该关键字

    跳过测试的能力已经讨论了很多年了,但是在我写这篇文章的时候,核心团队仍然对添加该特性犹豫不决

    目前,robot框架票证跟踪系统中有一个针对该功能的开放票证,对此进行了大量讨论。看


    对于一个库的实现,如果前一个测试失败,它将使您的测试失败,请参见此问题。它应该是一个相当简单的修改,以使它通过测试,而不是导致它失败

    如果您想防止在测试套件D由于之前的失败而缓慢失败时执行它,那么只需像使用全局变量一样运行它。 更改套件拆卸A、B、C中的全局变量,并有条件地调用测试套件D的套件设置中的全局变量值

    这将阻止执行,并使所有D从一开始就失败


    我使用了类似的方法,我必须在几个单独的测试套件文件中进行e2e测试。如果初始登录失败,那么继续下去就没有意义了,所以我像这样让其余的都失败了。

    如果您想防止执行测试套件D时很耗时,而测试套件D会因为之前的失败而慢慢失败,只需像使用全局变量一样运行它。 更改套件拆卸A、B、C中的全局变量,并有条件地调用测试套件D的套件设置中的全局变量值

    这将阻止执行,并使所有D从一开始就失败

    我使用了类似的方法,我必须在几个单独的测试套件文件中进行e2e测试。如果初始登录失败,那么继续下去就没有意义了,所以我像这样失败了其余的部分