问题标签 [nose]

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 投票
2 回答
21233 浏览

python - 使用鼻子运行目录中的所有测试

我需要能够通过在 Linux shell 中键入一行来运行当前目录中的所有测试。在某些目录中,这可以正常工作。但在其他情况下,当我输入“nosetests”时,不会运行任何测试。如果我单独调用它们,测试将运行,但我需要它们全部自动运行。这是不起作用的目录之一:

当我在父目录中运行“nosetests”时,某个子目录中的所有测试都会运行,但不会运行来自 /extwebserver 或其他子目录或父目录本身的测试。

编辑 这是输出:

0 投票
10 回答
26512 浏览

python - Scrapy 单元测试

我想在 Scrapy(屏幕抓取器/网络爬虫)中实现一些单元测试。由于一个项目是通过“scrapy crawl”命令运行的,所以我可以通过鼻子之类的东西来运行它。由于scrapy是建立在twisted之上的,我可以使用它的单元测试框架Trial吗?如果是这样,怎么做?否则我想让鼻子工作。

更新:

我一直在谈论Scrapy-Users,我想我应该“在测试代码中构建响应,然后使用响应调用方法并断言 [I] 在输出中获得预期的项目/请求”。我似乎无法让它工作。

我可以构建一个单元测试测试类并在测试中:

  • 创建响应对象
  • 尝试使用响应对象调用我的蜘蛛的解析方法

但是,它最终会生成回溯。关于为什么的任何见解?

0 投票
2 回答
1143 浏览

python - 使鼻子无法通过慢速测试

如果测试的运行时间超过一定时间(比如 500 毫秒),我希望我的测试失败,因为当大量缓慢的测试负载增加时,它会很糟糕,并且每次运行测试套件时都会突然出现很大的延迟。Nose 是否有任何插件或任何东西可以做到这一点?

0 投票
1 回答
146 浏览

python - How to find out the location of a doctest file when running nose?

I am using python nose to run a bunch of doctests in subdirectories. The calling script is nose.cmd:

(The doctests live in *.rst files.)

Example directory structure:

How can the path of the rst file be retrieved in the python code inside the rst file itself? For example in mymod.rst the usual sys.path and __file__ give no information about the path \module1\ but I need that for the imports.

Of course I could introduce a constant into each rst file that contains its directory, but that's not what I prefer.

0 投票
2 回答
377 浏览

python - 在 app.yaml 中使用登录设置对 gae 进行单元测试

我正在对使用 app.yaml 文件中的登录设置的谷歌应用引擎应用进行单元测试。例如,

我正在使用 testbed、nose、nose-gae 和 webtest,但不确定其中哪些重要。

我的问题是 app.yaml 的登录设置在测试期间被忽略了。所以如果我没有登录用户并打电话

我得到了请求的页面,而不是被重定向到登录页面。

有没有办法从 app.yaml 测试登录设置?

0 投票
5 回答
2709 浏览

python - 测试鼻子中是否返回了正确的对象(Learn Python the Hard Way Ex 49)

我一直在努力学习 Python 第 2 版,这真是太棒了。我的问题与练习 49 (http://learnpythonthehardway.org/book/ex49.html) 有关,该练习是关于编写涵盖书中给出的代码的鼻子单元测试。我试图编写一个涵盖此功能的测试:

我试图运行这个测试:

但它返回错误,因为两个 Sentence 对象不是完全相同的对象

我如何使用鼻子来检查两个对象是否应该相同?

0 投票
2 回答
301 浏览

python - 如何构建基于彼此的鼻子单元测试?

例子

假设您有一个这样的假设 API:

关键是do_something(),您需要注册并登录。

这是一个可能会编写的过度简化的、首次通过的单元测试套件:

问题

当注册失败时,所有的测试都会失败,这使得真正的问题在哪里变得不明显。看起来一切都坏了,但实际上只有一个关键的东西坏了。除非您熟悉所有测试,否则很难找到曾经至关重要的东西。

问题

您如何构建单元测试,以便在它们所依赖的核心功能失败时不执行后续测试?

想法

这是我想到的可能的解决方案。

  1. 手动检测每个测试中的故障并引发 SkipTest。- 有效,但需要大量手动、容易出错的工作。
  2. 当主要测试失败时,利用生成器不产生后续测试。- 不确定这是否真的有效(因为我如何“知道”先前产生的测试失败)。
  3. 将测试分组到测试类中。例如,这些都是需要您登录的所有单元测试。 - 不确定这是否真的解决了我的问题。不会有同样多的失败吗?
0 投票
3 回答
21766 浏览

python - 使用nose进行测试的Python导入-在当前包之上导入模块的最佳实践是什么

这是一个经常以不同形式被问到的问题,并且经常得到“大声笑你做得不好”的回答。很确定这是因为人们(包括我)正在尝试将其用作实现的常识场景,并且解决方案并不明显(如果您以前没有这样做过)。

会接受“让飞出瓶子”的答案。

给定

tests_sut.py 开始的地方:

在根目录中运行鼻子测试会导致:

走过的大道:

a)做一个亲戚使用

b) 将项目的根目录添加到 PYTHONPATH

c) 使用

在每个测试模块开始处的导入之前添加 .. 路径。

d) 只记得做一个

在项目上将模块安装到站点包中,然后再运行测试。


所以要求是让测试位于可以访问项目的测试包根目录下。以上每一项对我来说都不“自然”,被证明是有问题的,或者看起来太辛苦了!

在 java 中这是可行的,但基本上是通过您的构建工具/IDE 将您的所有类放在类路径上。也许问题是我期待 Python 的“魔法”?在 Flask 网络框架测试中已经注意到,选项 d) 似乎是首选。

无论如何,以下推荐首选解决方案的陈述将消除我自己的“不自然”感觉。

0 投票
2 回答
7714 浏览

python - 课堂内的鼻子测试生成器

是否可以在自定义类中运行鼻子测试生成器?我正在尝试将示例转换为基于类的简单版本:

这导致

我查看了更改日志,并认为这应该从版本0.9.0a1 开始工作。

我哪里错了?

0 投票
2 回答
5647 浏览

python - 将选项传递给 Python 测试脚本

我没有从命令行运行我的鼻子测试,而是使用一个测试运行器,它为所有测试设置了一些东西,包括与 MongoDB 的本地测试实例的连接。鼻子的文档似乎仅指示如何通过命令行或位于您的主目录中的配置文件传递选项。有没有办法在使用脚本运行测试时传递选项,例如 --with-xunit ?