Robotframework中各个级别的Setup和Teardown执行顺序以及范围 下载本文

内容发布更新时间 : 2024/5/5 23:59:18星期一 下面是文章的全部内容请认真阅读。

Robotframework中各个级别的Setup和Teardown执行顺序以及范围

? suite级别的Setup\\Teardown是不会被覆盖的,但test级别的Setup\\Teardown会被覆盖 ? 覆盖顺序是test case -> test suite -> Project/Directory

? 当TestCase有自己的Setup或Teardown时,则会选择执行自己的,抛弃上级的 ? 当Test Suite和Test Case都没指定其Setup\\Teardown时,就执行Project/Directory的 ? 当某个TestCase没有Setup或Teardown,就执行上一级的;如果另一个Case有的话,

就执行自己对应的Setup或Teardown

情况1:Project/Directory、TestSuite、TestCase将所有Setup和Teardown都写上Log关键字 结论:

? 执行顺序

”Project”Suite Setup ->“Test Suite”Suite Setup ->“Test Case” Setup -> ...Test执行... “Test Case” Teardown ->“Test Suite”Suite Teardown ->“Project”Suite Teardown ->

? 范围

可以发现“顶层Test开始”\\“顶层Test结束”\\“套件Test开始”\\“套件Test结束” 这几个没有出现结果里面,

说明他们没有被执行,究其原因应该是被TestCase的Setup和Teardown给覆盖。也就是说当TestCase有自己的Setup或Teardown时,则会选择执行自己的,抛弃上级的

Project

TestSuite

TestCase

接下来看看输出结果:

情况2:Project/Directory、TestSuite将Setup和Teardown都写上Log关键字,但Test Case中Clear掉并增加1条case 结论:

? 执行顺序

”Project”Suite Setup ->“Test Suite”Suite Setup ->“Test Suite” Test Setup -> ...Test执行... “Test Suite” Test Teardown ->“Test Suite”Suite Teardown ->“Project”Suite Teardown -> ? 范围

可以发现“顶层Test开始”\\“顶层Test结束”仍然未出现在结果中,但是“套件Test开始”\\“套件Test结束”出现了,且出现在每一个TestCase执行前、后

说明当某个TestCase没有Setup或Teardown,就执行上一级的;如果另一个Case有的话,就执行自己对应的Setup或Teardown

情况3:Project/Directory将Setup和Teardown都写上Log关键字,但Test Suite中Clea掉,Test Case中Clear掉,并增加1条case 结论:

? 执行顺序

”Project”Suite Setup ->“Test Suite”Suite Setup ->“Project” Test Setup -> ...Test执行... “Project” Test Teardown ->“Test Suite”Suite Teardown ->“Project”Suite Teardown -> ? 范围

可以发现“顶层Test开始”\\“顶层Test结束”出现在结果中了,并且每一个TestCase执行时都有出现,另外“顶层Suite开始”“顶层Suite结束”始终都出现,且只执行一次

说明当Test Suite和Test Case都没有指定其Setup\\Teardown时,就会执行Project的;另外suite级别的Setup\\Teardown是不会被覆盖的,但是test级别的Setup\\Teardown会被覆盖;覆盖顺序是test case -> test suite -> project