Exception Robot框架在异常时成功

Exception Robot框架在异常时成功,exception,testing,robotframework,Exception,Testing,Robotframework,我正在测试一个软件组件,希望该软件在某些情况下抛出异常。 我想通过使用robot框架重现这些情况 如果我捕获到一个特定的异常(这是我所期望的,因为我故意在被测组件中创建一个错误状态),测试用例将成功 如果我没有收到特定的异常(即,在错误情况下,我的测试组件没有失败(抛出异常),测试用例将失败 我要找的是这样的东西: prepareErrorInTestEnvironment try executeComponentWhichThrowsException except pa

我正在测试一个软件组件,希望该软件在某些情况下抛出异常。 我想通过使用robot框架重现这些情况

  • 如果我捕获到一个特定的异常(这是我所期望的,因为我故意在被测组件中创建一个错误状态),测试用例将成功
  • 如果我没有收到特定的异常(即,在错误情况下,我的测试组件没有失败(抛出异常),测试用例将失败
我要找的是这样的东西:

prepareErrorInTestEnvironment
try 
    executeComponentWhichThrowsException
except
    pass
fail

我相信
try/else
就是你想要的

prepareErrorInTestEnvironment
try:
    executeComponentWhichThrowsException
except:
    pass
else: 
    fail
您也可以返回,除非失败不会执行:

prepareErrorInTestEnvironment
try:
    executeComponentWhichThrowsException
except:
    *dosomething*
    return
fail
“预期异常”的处理在Robot框架中有点特殊,因为异常通常会使关键字失败,从而导致测试失败。 你要找的关键词是

你的测试看起来像

*** Test Cases ***
my test
    prepareErrorInTestEnvironment
    Run Keyword and Expect Error  TheExceptionYouExpect  executeComponentWhichThrowsException

如果得到正确的异常,这将成功,否则将失败

我认为我的“python”标记有点误导,因为我实际上是在寻找robotframework解决方案。感谢您的回答,我将删除“python”标志,因为我的问题不是robotframework独有的,只有python才能实现测试用例(此处为“ExecuteComponentWhichRowsException”是干净的,可能没有生成任何异常…此关键字强制要求远程端出现错误。如果“executeComponent”没有生成任何异常,则此关键字返回“测试用例预期错误'safeException:'未发生”