有一个用Python编写的定制RF库:
class ALibrary:
def __init__(self, name):
self._name = name
def get_name(self):
print "*WARN*" + self._name在设置中导入此库
*** Settings ***
Library lib/ALibrary.py LaoWang默认情况下,它为每个测试用例创建新的测试库实例。
我的理解是,__init__(self, name)在每个测试用例的开头都会被调用,例如:
*** Test Cases ***
Test Case 1
get name
Test Case 2
get nameRobotframework应该为Test Case 1创建一个实例,为Test Case 2创建另一个实例,但是,我的__init__(self, name)需要一个参数,如何在*** Test Cases ***中传递这个参数
做了个测试:
$ python -m robot test.1.robot
==============================================================================
Test.1
==============================================================================
[ WARN ] LaoWang
Case 1 | PASS |
------------------------------------------------------------------------------
[ WARN ] LaoWang
Case 2 | PASS |
------------------------------------------------------------------------------
Test.1 | PASS |
2 critical tests, 2 passed, 0 failed
2 tests total, 2 passed, 0 failed这两个案例都显示了LaoWang,这是否意味着RF没有在不同的测试用例中创建新的实例?
发布于 2018-07-13 06:38:31
因为这个问题是关于测试库范围的,所以我确实想链接到这个主题的机器人框架文档。应该读取的方式是,设置中的库将以相同的方式重新初始化每个测试用例。以下是说明这种行为的一个例子:
ALibrary.py
class ALibrary:
ROBOT_LIBRARY_SCOPE = 'TEST CASE'
def __init__(self, name):
self._name = name
def get_name(self):
print "*WARN*" + self._name
def set_name(self, name):
self._name = name ALibrary.robot
*** Settings ***
Library ALibrary LaoWang
*** Test Cases ***
Test Case 1
get name
set name New Name
get name
Test Case 2
get name
set name Another New Name
get name在下面的结果中,您可以看到,即使在第一个测试用例中设置了新名称之后,设置初始化中的默认名称也会在第二个测试用例中返回。
==============================================================================
TestProject
==============================================================================
TestProject.ALibrary
==============================================================================
Test Case 1
[ WARN ] LaoWang
[ WARN ] New Name
| PASS |
------------------------------------------------------------------------------
Test Case 2
[ WARN ] LaoWang
[ WARN ] Another New Name
| PASS |
------------------------------------------------------------------------------
TestProject.ALibrary | PASS |
2 critical tests, 2 passed, 0 failed
2 tests total, 2 passed, 0 failed
============================================================================== https://stackoverflow.com/questions/51317072
复制相似问题