标签: python-nose

如何在python中使用nosetest/unittest断言输出?

我正在为下一个函数编写测试:

def foo():
    print 'hello world!'
Run Code Online (Sandbox Code Playgroud)

所以,当我想测试这个函数时,代码将是这样的:

import sys
from foomodule import foo
def test_foo():
    foo()
    output = sys.stdout.getline().strip() # because stdout is an StringIO instance
    assert output == 'hello world!'
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用-s参数运行nosetests,测试会崩溃.如何通过unittest或nose模块捕获输出?

python unit-testing python-nose nosetests

106
推荐指数
9
解决办法
5万
查看次数

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

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

src/
    module1.py
    module2.py
    test_module1.py
    test_module2.py
    subpackage1/
        __init__.py
        moduleA.py
        moduleB.py
        test_moduleA.py
        test_moduleB.py
Run Code Online (Sandbox Code Playgroud)

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

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

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

OK
Run Code Online (Sandbox Code Playgroud)

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

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

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

OK
Run Code Online (Sandbox Code Playgroud)

谢谢

python unit-testing python-nose

15
推荐指数
3
解决办法
6814
查看次数

用nose测试python多处理池代码

我试图用鼻子编写测试,使用多处理计算得出的东西.

我有这个目录结构:

code/
    tests/
        tests.py
Run Code Online (Sandbox Code Playgroud)

tests.py看起来像这样:

import multiprocessing as mp


def f(i):
    return i ** 2


pool = mp.Pool()
out = pool.map(f, range(10))


def test_pool():
    """Really simple test that relies on the output of pool.map.
    The actual tests are much more complicated, but this is all
    that is needed to produce the problem."""
    ref_out = map(f, range(10))
    assert out == ref_out

if __name__ == '__main__':
    test_pool()
Run Code Online (Sandbox Code Playgroud)

code目录运行,python tests/tests.py 传递.

nosetests tests/tests.py 未能完成.它启动,但永远不会通过呼叫pool.map …

python testing multiprocessing python-nose

6
推荐指数
1
解决办法
2529
查看次数