3

我们有一堆我想集成到 Jenkins 中的系统测试。结果,我想我可能会尝试并聪明一点,并使用 Nose 的 Xunit 插件来生成结果文件。我的代码如下所示:


from optparse import OptionParser
from subprocess import call

from nose.plugins.xunit import Xunit as xunit
from nose.config import Config

if __name__ == "__main__":
    p = OptionParser(usage="A simple wrapper for creating JUnit XML")
    p.add_option("-v", "--verbose",
                 action="store_true", dest="verbose", default=False,
                 help="generate extra information")

    # hook in xunit plugin options
    x = xunit()
    x.add_options(p)

    (options, args) = p.parse_args()
    x.configure(options, Config())
    for test in args:
        test_args = test.split(" ")
        test_name = test_args[0]
        if options.verbose: print "running: %s" % (test_name)

        x.startTest(test_name)
        result = call(test_args, shell=True)
        if result == 0:
            x.addSuccess(test_name)
        else:
            x.addFailure(test_name, None)

    x.report()

但是,当我运行时,我遇到了失败:

17:24 ajb@sloy/x86_64 [perf_test.git] >./junitify.py -v "/bin/true" "/bin/false"
运行:/bin/true
回溯(最近一次通话最后):
  文件“./junitify.py”,第 39 行,在
    x.addSuccess(test_name)
  addSuccess 中的文件“/usr/lib/python2.7/dist-packages/nose/plugins/xunit.py”,第 239 行
    self.stats['passes'] += 1
AttributeError: 'Xunit' 对象没有属性 'stats'

从查看 xunit 的代码来看,这是因为 self.enabled 没有设置。但是,是否可以以这种方式使用 Xunit 库并不完全清楚。我正在尝试做的事情可能吗?这只是误解了这个库应该如何初始化吗?我应该只使用不同的 python 库来生成输出吗?

这将是一种耻辱,因为我们确实使用鼻子在 Jenkins 下对我们的一大块 python 代码运行 doctest 单元测试。

4

0 回答 0