【问题标题】:unit test runs with python but fails with nosetests单元测试用 python 运行,但用鼻子测试失败
【发布时间】:2017-05-10 22:17:25
【问题描述】:

我编写了一个包含一些单元测试的 python 文件 (testfile.py)。

当我运行“python testfile.py”时,测试运行良好并且没有错误。

但是当我运行“nosetests testfile.py”时,我得到了一个 TypeError 的形式 TypeError: func_name() 正好接受 3 个参数(给定 1 个)。

能否请您帮助我了解可能发生的情况以及如何修改 python 文件以便它可以同时使用 python 和 nosetests 运行。 提前致谢, 迷惑。

【问题讨论】:

  • 请添加能重现此错误的最少代码

标签: python unit-testing nose


【解决方案1】:

是的,您对发现在不同工具上的工作方式有所不同感到困惑。它总是让我绊倒。进入包含测试的目录并执行以下操作:

$nosetests 测试文件

(测试文件末尾没有.py)

你也可以使用 python unittest 模块:

$ python -m unittest 测试文件

【讨论】:

  • 嗨,Iain,我确实尝试了nosetests testfile 和python -m unittest testfile。虽然后者有效,但前者无效并且产生与以前相同的错误。谢谢,Ambarish。
  • 啊,您可能需要目录中的空 _ _ init _ _ .py 以便将其视为模块。试试看?如果这不起作用,也许发布您的测试文件的内容。
【解决方案2】:

我发现了问题所在。我有一个非测试函数,其名称中包含“test”,即使它的 id 不是以“test_”开头,因此它被鼻子视为测试函数。当我修改函数名称时,问题就解决了。

【讨论】:

    猜你喜欢
    • 2012-10-09
    • 1970-01-01
    • 2018-09-02
    • 1970-01-01
    • 1970-01-01
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    • 2015-08-21
    相关资源
    最近更新 更多