退出一个 Python 程序(从一个函数)并获得成功的 运行 结果
Exit a Python Program (From a Function) with a Successful Run Result
我正在尝试退出一个 Python 测试用例,我是 运行 一个成功的 运行 结果。我有一个程序使用我创建的函数来查看 table 是否包含标识符。
def test_LogsIdentifiersApache(driver, url):
loginToWebsite(driver, url).confirmLoginAndUnlocked()
driver.get(url('/LogsPage/'))
selectIdentifier(driver, "gdm-simple-greeter")
在该函数中 [位于不同的文件],它在 table 中搜索标识符。如果它找到它,那么它会做一些其他检查和 returns 到 运行 测试用例。如果它没有在 table 中找到标识符,那么它会向屏幕发送一条消息,通知测试人员该标识符不在 table 中并成功退出 运行 .
def selectIdentifier(driver, identifier):
<< Code to search for identifier here >>
# If identifier not found, print message to window & exit test case with successful run
if isIdentifierPresent == False:
print "\nNOTICE: IDENTIFIERS OBJECT \""+identifier+"\" NOT LISTED IN TABLE"
return
当我在测试用例中包含所有代码时,使用 'return' 效果很好。一旦我开始创建函数,测试就会停止并成功退出 运行。我明白 'return' 使它 return 到测试用例并继续 运行ning,这是我不想要的。相反,我想 .. (1) 打印未找到标识符的消息,并且 .. (2) 退出此函数 [并且测试用例为 运行] 并成功 运行 & 继续 运行测试套件。我怎样才能做到这一点?此外,如果重要的话,这个测试用例 运行 直接来自带有 'py.test' 命令的文件夹,而不是来自测试套件文件。
如果你在 Python 3,你可以使用 sys.exit() 出去。也许是这样的?
if isIdentifierPresent == False:
print "\nNOTICE: IDENTIFIERS OBJECT \""+identifier+"\" NOT LISTED IN TABLE"
else:
print("Hooray!")
sys.exit()
我发现最好的方法是定义一个异常 class:
class noIdentifier(Exception):
pass
现在修改代码如下:
if isIdentifierPresent == False:
print "\nNOTICE: IDENTIFIERS OBJECT \""+identifier+"\" NOT LISTED IN TABLE"
raise noIdentifier("<Optional message>")
在测试套件中,将测试用例调用包装在 try except:
try:
testCase()
except noIdentifier:
pass
我相信还有其他方法可以做到这一点。不过我觉得这真的很方便。
编辑:要使用可选消息,
try:
testCase()
except noIdentifier as e:
print e.message # or use print str(e)
我正在尝试退出一个 Python 测试用例,我是 运行 一个成功的 运行 结果。我有一个程序使用我创建的函数来查看 table 是否包含标识符。
def test_LogsIdentifiersApache(driver, url):
loginToWebsite(driver, url).confirmLoginAndUnlocked()
driver.get(url('/LogsPage/'))
selectIdentifier(driver, "gdm-simple-greeter")
在该函数中 [位于不同的文件],它在 table 中搜索标识符。如果它找到它,那么它会做一些其他检查和 returns 到 运行 测试用例。如果它没有在 table 中找到标识符,那么它会向屏幕发送一条消息,通知测试人员该标识符不在 table 中并成功退出 运行 .
def selectIdentifier(driver, identifier):
<< Code to search for identifier here >>
# If identifier not found, print message to window & exit test case with successful run
if isIdentifierPresent == False:
print "\nNOTICE: IDENTIFIERS OBJECT \""+identifier+"\" NOT LISTED IN TABLE"
return
当我在测试用例中包含所有代码时,使用 'return' 效果很好。一旦我开始创建函数,测试就会停止并成功退出 运行。我明白 'return' 使它 return 到测试用例并继续 运行ning,这是我不想要的。相反,我想 .. (1) 打印未找到标识符的消息,并且 .. (2) 退出此函数 [并且测试用例为 运行] 并成功 运行 & 继续 运行测试套件。我怎样才能做到这一点?此外,如果重要的话,这个测试用例 运行 直接来自带有 'py.test' 命令的文件夹,而不是来自测试套件文件。
如果你在 Python 3,你可以使用 sys.exit() 出去。也许是这样的?
if isIdentifierPresent == False:
print "\nNOTICE: IDENTIFIERS OBJECT \""+identifier+"\" NOT LISTED IN TABLE"
else:
print("Hooray!")
sys.exit()
我发现最好的方法是定义一个异常 class:
class noIdentifier(Exception):
pass
现在修改代码如下:
if isIdentifierPresent == False:
print "\nNOTICE: IDENTIFIERS OBJECT \""+identifier+"\" NOT LISTED IN TABLE"
raise noIdentifier("<Optional message>")
在测试套件中,将测试用例调用包装在 try except:
try:
testCase()
except noIdentifier:
pass
我相信还有其他方法可以做到这一点。不过我觉得这真的很方便。
编辑:要使用可选消息,
try:
testCase()
except noIdentifier as e:
print e.message # or use print str(e)