退出Python程序(从函数中)并成功执行结果

2024-09-29 01:22:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图退出一个Python测试用例,这个测试用例运行成功。我有一个程序,它使用我创建的函数来查看表是否包含标识符。在

def test_LogsIdentifiersApache(driver, url):
        loginToWebsite(driver, url).confirmLoginAndUnlocked()
        driver.get(url('/LogsPage/'))
        selectIdentifier(driver, "gdm-simple-greeter")

在那个函数中[位于另一个文件中],它在表中搜索标识符。如果它找到它,那么它会做一些其他检查并返回运行测试用例。如果在表中找不到标识符,那么它将向屏幕发送一条消息,通知测试人员标识符不在表中,并成功运行退出。在

^{pr2}$

当我有测试用例中的所有代码时,使用'return'很好地工作。一旦我开始创建函数,测试就停止退出并成功运行。我知道'return'使它返回到测试用例并继续运行,这是我不希望看到的。相反,我想。。(1) 打印找不到标识符的消息并。。(2) 退出此函数[和正在运行的测试用例]并成功运行并继续运行测试套件。我该怎么做?另外,这个测试用例是直接从带有'py.测试如果重要的话,不是从一个测试文件中。在


Tags: 文件函数test程序消息urlgetreturn
2条回答

我发现最好的方法是定义一个异常类:

class noIdentifier(Exception):
    pass

现在修改代码如下所示:

^{pr2}$

在测试套件中,将测试用例调用包装在try中,除了:

try:
    testCase()
except noIdentifier:
    pass

我肯定还有别的办法。不过我觉得这很方便。在

编辑:要使用可选消息

try:
    testCase()
except noIdentifier as e:
    print e.message # or use print str(e)

如果您使用的是python3,则可以使用系统出口()出去。可能是这样吧?在

if isIdentifierPresent == False:
    print "\nNOTICE: IDENTIFIERS OBJECT \""+identifier+"\" NOT LISTED IN TABLE"
else:
    print("Hooray!")
    sys.exit()

相关问题 更多 >