RobotFramework:提高PassExecution不起作用

时间:2015-04-10 16:30:34

标签: python-2.7 robotframework

我们正在使用RobotFramework实现自动化。在我们的一个python模块中,我们希望在python代码中使用PASS Execution传递测试状态。

我尝试使用提升PassExecution但我得到的只是一条消息,但测试用例继续而没有停止。此外,我尝试调用关键字pass_execution但看到相同的行为。

任何人都可以让我知道如何实现它吗?

这是我的代码

def fetchData(productType , attributes=[]):
    result_Array = fetch_url_response(productType , attributes)
    iterator = 1
    data_List = list()
    while(iterator < len(result_Array)):
        try:
            data_List.append((result_Array[iterator])[1:11])
            iterator = iterator + 1
        except Exception as ex:
            print ex
        # Shuffles the List of data
    random.shuffle(data_List) 
    print "Checking the data Length."
    if len(data_List) < 1:
        print "Length less than 1. Pass the Execution"
        #call_keyword('pass_execution' , 'No data found for the criteria. Passing the test case')
        raise PassExecution('No data found for the criteria. Passing the test case')
    else:
        data = data_List[0]
        return data

1 个答案:

答案 0 :(得分:0)

如果没有看到您的代码,就无法知道您做错了什么。

关键字有两种方式可以使测试立即以PASS状态停止:引发robot.errors.PassExecution例外,或调用内置关键字pass_execution

以下是使用每种方法的两个关键字的示例:

from robot.libraries.BuiltIn import BuiltIn
from robot.errors import PassExecution

def custom_keyword_1():
    BuiltIn().pass_execution("life is good")

def custom_keyword_2():
    raise PassExecption("life is still good")

要测试它,请将其保存到名为`custom_keywords.py'的文件中,然后像这样使用它:

*** Settings ***
| Library | custom_keywords.py

*** Test cases ***
| Example 1
| | log | before calling the custom keyword
| | custom keyword 1
| | log | after calling the custom keyword

| Example 2
| | log | before calling the custom keyword
| | custom keyword 2
| | log | after calling the custom keyword

当您运行上述操作时,您应该看到第一条日志消息和“生活是好的”消息,但是您不会在每个测试中看到最终的日志消息,因为测试会立即以“通过”状态结束。