问题标签 [nosetests]

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 投票
4 回答
2339 浏览

user-interface - 是否有用于鼻子测试的 gui

在过去的几个月里,我一直在使用鼻子测试来运行我的 Python 单元测试。

它确实可以完成这项工作,但它对于直观地查看哪些测试正在运行或正在破坏并不是很好。

我使用了其他几个基于 GUI 的单元测试框架,它们提供了单元测试状态的可视化快照,并提供了向下钻取功能以获取详细的错误消息。

Nosetests 将其大部分信息转储到控制台,让开发人员筛选细节。

有什么建议吗?

0 投票
3 回答
9187 浏览

python - 列出 Nosetest 找到的所有测试

nosetests用来运行我的单元测试,它运行良好。我想在nostests不实际运行它们的情况下获取所有测试结果的列表。有没有办法做到这一点?

0 投票
8 回答
10276 浏览

python - 我可以将鼻子覆盖输出限制到目录(而不是包)吗?

我的 SUT 看起来像:

当我运行时nosetests --with-coverage,我会得到我宁愿忽略的各种模块的详细信息。但我不能使用该 --cover-package=PACKAGE选项,因为foo.py&bar.py不在包中。(请参阅http://lists.idyll.org/pipermail/testing-in-python/2008-November/001091.html之后的线程, 因为我没有将它们放入包中。)

我可以将覆盖范围输出限制为 foo.py 和 bar.py 吗?

更新- 假设没有比下面Nadia更好的答案,我问了一个后续问题:“我如何编写一些(bash)shell 脚本来将目录中所有匹配的文件名转换为命令行选项? "

0 投票
9 回答
14218 浏览

python - 在 virtualenv 中使用鼻子的问题

我无法在 virtualenv 项目中使用鼻子(nosetests) - 它似乎无法找到安装在 virtualenv 环境中的包。

奇怪的是我可以设置

在 setup.py 并运行测试就好了

但是当直接运行nosetests时,会出现各种导入错误。

我已经尝试过在系统范围内安装鼻子和 virtualenv 鼻子包,但没有运气。

有什么想法吗?

谢谢!!

0 投票
2 回答
536 浏览

python - 覆盖不显示 virtualenv 中的执行行

我有一个项目,我正在尝试运行有覆盖范围的鼻子测试。我在 virtualenv 中运行。当我跑

测试运行良好,但覆盖率并未显示任何代码已执行(覆盖率均为 0%)。

覆盖版本 3.0b3、Darwin 内核版本 9.7.0、Mac OS X 10.5.7、setuptools 0.6c9、nose 0.11.1、Python 2.5.4

0 投票
0 回答
728 浏览

python - 将鼻子测试与 Python 合约相结合

我正在使用Python 的合同来指定前置条件/​​后置条件/不变量。我也在使用 doctests 进行单元测试。

我想让我的所有 doctest 单元测试都在启用合同的情况下运行,并且我想使用nose运行我的测试。不幸的是,如果我用鼻子运行测试,它不会执行前/后/不变断言。我在每个 .py 文件中放置了一个设置函数,以确保它contract.checkmod被调用

我可以确认这个函数在运行测试之前由鼻子执行,但合同仍然没有被执行。

另一方面,如果我通过调用运行 doctest,则会调用doctest.testmodpre/post/inv:

下面是一个 Python 脚本的示例,如果直接调用它的测试将成功,但如果用鼻子调用则失败:

当我独立运行上述文件时,测试通过:

这是鼻子:

0 投票
5 回答
26148 浏览

python - 禁用 Python 鼻子测试

当使用 Python 的鼻子测试时,可以通过将测试函数的__test__属性设置为 false 来禁用单元测试。我已经使用以下装饰器实现了这一点:

但是,这具有将包装器称为单元测试的副作用。Wrapper 将始终通过,但它包含在 nosetests 输出中。是否有另一种构造装饰器的方法,以便测试不会运行并且不会出现在鼻子测试输出中。

0 投票
2 回答
1428 浏览

unit-testing - 如何在 webpy 中使用 SQLite :memory: 数据库进行单元测试

我想在我的 webapp 中使用内存中的 SQLite (":memory:") DB 进行测试。我使用nosetests 进行测试,并使用webpy 作为框架。

我想在 setup() 函数中填充数据库,然后运行我所有的测试。我的问题是 webpy 会在每次请求后关闭所有打开的数据库连接,并且 SQLite :memory: DB 只会持续到您关闭连接,所以只有第一个测试实际运行正确,而其他所有测试都失败了。

我的选择是在磁盘支持的数据库上运行测试,或者在每个单独测试开始时在内存中重新创建整个数据库。

您知道如何防止 webpy 在每次请求后关闭数据库连接吗?你能想出任何其他方法来获得一个使用 webpy 持续多个请求的内存 SQLite DB 吗?

0 投票
1 回答
744 浏览

python - 使用 init_model 中的模型对 Pylons 应用程序进行鼻子测试?

我有一个使用paster create -t pylons一个控制器和匹配的功能测试创建的股票 Pylons 应用程序,使用添加paster controller,以及一个 SQLAlchemy 表和映射的 ORM 类。SQLAlchemy 的东西是在init_model()函数中定义的,而不是在模块范围内(并且需要在那里)。

运行python setup.py test引发异常,因为在同一进程nose中以某种方式导致init_model()被调用两次,因此它试图创建一个已经存在的模型。

我可以通过在内部设置和检查全局变量来巧妙地解决这个问题init_model(),但是(a)我不希望这样做,并且(b)动态定义模型的第三方库(例如 AuthKit)也会破坏测试,并且不能这么容易改变。

有没有办法修复nosePylons 的测试,或者我应该编写自己的测试脚本并直接使用unittest,loadappwebtest?这有什么可行的例子吗?

0 投票
2 回答
590 浏览

python - 如何判断nosetest何时以编程方式运行

nosetest是 Turbogeras 2.0 中的默认测试框架。该应用程序有一个用于初始化数据库的 websetup.py 模块。我在我的开发和生产环境中使用 mysql 并且 websetup 工作正常,但是nosetest在内存上使用 sqlite 并且当它尝试初始化数据库时会发送错误:

TypeError:SQLite 日期、时间和日期时间类型仅接受 Python 日期时间对象作为输入。

我已经检测到何时发生这种情况并且处于导入状态:

我怎么知道nosetest何时运行?我试过了:

第一个没有结果,第二个有错误