Nosetest:失败时是否将errorlevel设置为1?

时间:2014-02-14 19:33:13

标签: python nose

Windows环境,python 2.7,最新的鼻子测试。

查看nosetest文档并在Google上搜索,我看不到测试失败时测试cmd行错误级别。

我们需要这样,以便我们的构建系统可以检测到测试失败。

问题是:

  • Nosetest是否设置了cmd行,errorlevel? (如果是这样,文档在哪里)
  • 如果没有,处理此问题的适当方法是什么? (我的构建必须解析一些日志输出,或者?)

1 个答案:

答案 0 :(得分:2)

Windows上的

%errorlevel%是应用程序的返回代码,通常是exit(int)调用的参数(退出代码)。这些返回代码与unittest相同,但文档不是很明确:

  

testRunner参数可以是测试运行器类,也可以是已创建的实例。默认情况下,主调用sys.exit(),其中一个退出代码表示测试成功或失败。

在上面的句子中默认如果调用参数exit未设置为False ,则理解为

  

主要支持通过传入参数exit = False从交互式解释器中使用。这会在不调用sys.exit()

的情况下在标准输出上显示结果

(2.7和3.1中的新功能。在旧版本中,始终会调用sys.exit。)

我没有找到关于返回代码的特殊文档,但是查看源代码,可以发现退出代码为0 for success, 1 for errorunittest alone相同)和2 if the usage help has to be printed(给定参数时作为独立程序调用是不正确的)。特定于鼻子,当程序被要求display versionlist plugins时,退出代码也是0。