当前位置:  开发笔记 > 编程语言 > 正文

如何以一种我可以在一个命令中运行所有测试的方式组织python测试?

如何解决《如何以一种我可以在一个命令中运行所有测试的方式组织python测试?》经验,为你挑选了2个好方法。

目前我的代码按以下树结构组织:

src/
    module1.py
    module2.py
    test_module1.py
    test_module2.py
    subpackage1/
        __init__.py
        moduleA.py
        moduleB.py
        test_moduleA.py
        test_moduleB.py

module*.py文件包含源代码和test_module*.py包含TestCaseS为相关模块.

通过以下命令,我可以运行单个文件中包含的测试,例如:

$ cd src
$ nosetests test_filesystem.py
..................
----------------------------------------------------------------------
Ran 18 tests in 0.390s

OK

我怎样才能运行所有测试?我试过nosetests -m 'test_.*'但它不起作用.

$cd src
$ nosetests -m 'test_.*'

----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK

谢谢



1> Torsten Mare..:

无论你是分开还是混合测试和模块都可能是一个品味问题,尽管我强烈建议将它们分开(设置原因,代码统计等).

当您使用nosetests时,请确保所有带有测试的目录都是真正的包:

src/
    module1.py
    module2.py
    subpackage1/
        __init__.py
        moduleA.py
        moduleB.py
tests/
    __init__.py
    test_module1.py
    test_module2.py
    subpackage1/
        __init__.py
        test_moduleA.py
        test_moduleB.py

这样,您就可以nosetests在顶层目录中运行,并找到所有测试.但是,您需要确保它src/在上面PYTHONPATH,否则所有测试都会因缺少导入而失败.



2> Singletoned..:

如果他们都开始,test那么就nosetest应该工作.Nose会自动搜索以'test'开头的任何文件.


我发现了问题,nosetests跳过它们因为是可执行文件.我修复了重置可执行权限位并从subversion属性中删除svn:executable属性.
[--exe](http://packages.python.org/nose/usage.html#cmdoption--exe)选项可防止nosetests跳过可执行文件.
推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有