问题标签 [nose2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
376 浏览

python - Python的nose2 --with-coverage 显示了测试本身的覆盖率

我正在尝试遵循 David Sale 的Testing Python的第 3 章,但使用nose2而不是nosetests. 到目前为止,我已经写了一个calculate.py

并且,在一个子目录test中,一个test_calculator.py

如果我nose2 --with-coverage在主目录中运行,我会得到

我不明白为什么要为测试程序和主程序计算覆盖率test/test_calculate.pycalculate.py. 有什么办法可以禁用这种行为?

0 投票
1 回答
1235 浏览

python - 如何在nose2中运行单个测试用例

我想运行一个包含在unittest.TestCase使用nose2以下如何在 Nose2 中运行特定测试的子类中的单个测试,但它似乎对我不起作用。我正在使用以下示例脚本,我将其命名为mickey_mouse_test.py

如果我nose2 mickey_mouse_test在同一个目录中运行,它会运行模块中的所有测试:

但是,如果我尝试test_to_uppercase像这样运行,我会收到一个错误:

如果我使用该-s选项,我仍然会收到错误,尽管是不同的:

我还尝试阅读http://nose2.readthedocs.io/en/latest/usage.html中的“指定要运行的测试”部分,其中指出“Python 对象部分”应该是“点”姓名'。我不明白为什么在这种情况下,mickey_mouse_test.test_to_uppercase它不是一个“点名”。任何想法为什么这不起作用?

0 投票
1 回答
778 浏览

python - 如何使用nose2测试Python 2代码

我之前问过这个问题(Forcenose2 使用 Python 2.7 而不是 Python 3.5)但没有得到答案,我想我可以再试一次。我正在尝试使用命令运行测试

但我收到一个以

似乎nose2假设代码在Python 3 中,而在这种情况下它在Python 2 中。有没有办法nose2在Python 2 代码上工作?(例如通过更改其配置)?

0 投票
1 回答
784 浏览

python-3.x - Unable to get missing lines & branches in nose2

I'm trying to get my tests to report missing lines and branches. I've configured nose2 and coverage to produce line and branch coverage, and as far as I can tell I have set the coverage config correctly to give me the missing lines and branches. However I can't get coverage to give me missing column when run under nose2, but I can if I run it directly.


Consider the following setup in my project directory.

contents of .coveragerc

contents of unittest.cfg

the output of my nose2 command

As you can see, it has given me Branch cover, but not told me the missing branches.

If I simply run coverage report (on the produced .coverage file that is left behind after running nose)

You can see that coverage has given me the missing branches.


I can tell that coverage is picking up the .coveragerc when run under nose2, because if I remove the branch = True line under the [run] section in .coveragerc, then the branch coverage stats disappear from the report when run under nose.


Am I missing something extra I'm supposed to have done to get this show_missing config to get passed to coverage when it is run under nose2?

versions installed

0 投票
1 回答
211 浏览

python-2.7 - 在测试类中找不到 __init__ 变量?

我最近从使用nose 更改为nose2,但是我的很多测试代码似乎在此过程中已损坏。特别是我在测试类“self.mir_axis”中放入的初始化变量给出了这个错误:

这曾经适用于nose,但是对于nose2,我的init变量由于某种原因不再注册。我在这里错过了什么吗?我使用 python 2.7.3,并将 eclipse 作为 IDE 顺便说一句。

0 投票
1 回答
400 浏览

python - 修复 python/nose2/bin/nose2:未找到

我正在 OOP 中进行测试,我希望在其中创建一个 ShoppingCart。

我已经编写了通过 unittest 的所有测试的代码,但是当我尝试提交时,我收到了这个错误/错误

/bin/sh: 1: python/nose2/bin/nose2: 未找到

下面我展示了我的代码和单元测试。最统一的

我的代码

0 投票
0 回答
639 浏览

python - pytest如何更改测试结果

我正在将一堆nose2测试迁移到pytest,那些yield和pytest不能开箱即用的测试;所以我必须为这些类型制作一些东西,因此我收集“myassert val1 == val2,错误消息”类型的每个自定义断言,我将它们收集在字典中,并通过下面的钩子将它们添加到最终报告中

@pytest.hookimpl(hookwrapper=True, tryfirst=True) def pytest_runtest_makereport(item, call): # 在下一个钩子执行之前做任何你想做的事情 output = yield

最终报告包含它们,当从命令行运行或在 pycharm 输出窗口中运行时会列出它们,但它们不会显示在 junitxml 报告中。最终失败次数仍然基于有多少 test_* 失败而不是我收集了多少错误,我该如何在报告中更改它?要更新什么报告对象属性?此外,当在 pycharm 中运行时,我可以在报告树的根目录中看到错误,就像我在从命令行运行时在输出报告中看到的一样,但它们与我运行的每个 test_* 无关,它们与根报表对象。prolly 这就是为什么它们没有显示在 junitxml 报告中的原因。我想解释一下要更新哪些钩子和哪些对象以正确更改最终报告、更新失败的测试数以及将错误数正确链接到每个测试。谢谢一堆

0 投票
1 回答
58 浏览

python-3.x - 你如何激活没有预加载的nose2测试框架中的内置模块?

我正在尝试在nose2中加载“图层”插件,但我无法弄清楚配置文件的格式。文档在这里: http: //nose2.readthedocs.io/en/latest/plugins/layers.html,但它不包含要在配置文件中列出的模块名称。我之前已经为nose2 加载了第三方插件,但现在我遇到了未预加载的预安装插件的问题。这就是我现在的配置文件:

当我尝试使用此 .cfg 文件运行时,我收到一条错误消息,提示 layers.Layers 不是包。

任何帮助或指导将不胜感激!

0 投票
1 回答
348 浏览

python - 调用类方法时 Python Nose2 测试未完成

当我运行包括@classmethod使用 setuptools 和 nose2 调用的测试时,测试套件并没有完成它只是继续运行。但是我已经检查过测试确实通过并到达函数的末尾,测试套件只是没有完成运行。如果我删除使用decode_auth_token它的测试工作正常。我能够将其缩小到类方法,因为我也测试了其他类方法并且它们导致了同样的问题

有谁知道为什么会发生这种情况?以下是相关的代码段,没有发布太多我的代码

我的用户模型中的代码

以下两个函数调用时也会出现问题

虽然调用此函数不会导致问题

这是测试

第一个测试工作正常,第二个测试打印出来Done并正确解码 auth_token 返回正确的用户 ID,但不会导致测试套件完成。它只是在打印完成后继续运行。

这是安装脚本,我使用python setup.py test

运行和不停止时的输出

编辑----- 抱歉现在发表巨大的帖子在评论中有人提出建议后,我使用调试器确定它确实完成了测试。它实际卡住的地方是在 tearDown() 期间。我的以下功能是卡住的地方。

沿着调试器往下走,我确定它最终卡住了

更具体地讲这个方法self.traverse_single(table, drop_ok=True, _is_metadata_operation=True)。我假设它在等待发电机返回时被卡住了?不确定,但下面是我在它再次卡住之前得到的最后几行。

我相信它会卡在我的下表上

0 投票
1 回答
390 浏览

python-3.x - Nose2 XML 找不到模块,当未配置 Nose2 时

这可能是初学者的错误,或类似的东西。

更新

我安装了nose而不是nose2,然后运行nosetests --with-xunit它完全符合我的要求,证明问题不在于我的代码,而在于我如何处理nose2。我仍然想知道如何使用nose2 实现相同的目标,因为nose2 似乎最终会逐步淘汰nose,我宁愿早日转换。

当前设置

我目前正在运行nose2,它会查找并检查我所有的Python 3.6 单元测试并运行它们。他们目前都在通过。我只是将此输出重定向到可以打开文本文档并查看该Ran X tests in Y.ZZZs行的文件,这表明我的所有测试都通过了。

客观的

我需要将其导出为其他格式(目前正在尝试使用 XML 插件),以便以后可以构建 Web 界面。如果不是 XML,可能是 HTML、JSON、YML 或类似的东西。

已尝试

  • 根据(可能被误解的)文档,当从命令行通过调用时nose2 --plugin nose2.plugins.junitxml.JUnitXmlReporter,我得到ModuleNotFoundError: No module named 'nose2.plugins.junitxml.JUnitXmlReporter'; 'nose2.plugins.junitxml' is not a package
  • nose2 --plugin nose2.plugins.junitxml将运行并通过我所有的测试,但不会将结果导出到我当前位置、主目录或测试目录的 XML,所以我假设它根本不是。
  • nose2 --config nose2.cfg(我和配置都在我的源目录中)将导致所有测试失败,因为无法导入我编写的任何模块(这意味着它正在从解释器成功导入模块,包括我已经插入的模块)我假设它使用的是正确的虚拟环境。),但它会将这些故障输出到我当前位置的 XML。我的配置如下:

    /li>