2

可以指示鼻子test_*.py测试框架仅在文件中运行测试吗?

实际上,nosetests A使用以下目录结构:

A/
  test_A.py
  B/
    __init__.py

进口B,我想避免。

原因是 B 模块以 B 开头,import numpy因为它仅在用户安装了可选的 NumPy 模块时才使用。但是,没有安装 NumPy 的用户不希望处理鼻子测试B/__init__.py,因为import numpy即使 NumPy 是可选的,它也必然会失败。如何做到这一点?

4

4 回答 4

4

只需用try:..except ImportError:...块包装导入。在这种情况下,您甚至可以设置一个变量,让您知道 numpy 是否可用。

于 2011-04-26T12:59:13.237 回答
2

当然,只需使用 --match 和 --exclude 命令行选项来限制鼻子作为测试程序会发现的内容。

于 2011-04-27T01:49:21.783 回答
1

Nose 可以在目录、文件、模块、类和方法级别接受/拒绝测试。您需要拒绝该B 目录。没有办法忽略__init__.py文件​​;Python 永远不会看到它。它在B导入时显示,因此您需要忽略B.

尝试:

nosetests --exclude=B
于 2013-01-16T20:39:48.990 回答
0

我认为鼻子排除插件可能会有所帮助。如果您安装此插件然后运行:

    nosetests --exclude-dir B

它可能对你有用。我有同样的问题,并取得了一些可以接受的结果。现在我的下一个问题是exclude-dir在创建鼻子测试配置文件时似乎不是一个可用的选项。

于 2013-10-08T20:58:16.527 回答