标签: nosetests

Coverage.py中的"没有代码源"消息

我成功地昨晚跑了一个版本.我今天早上起床并运行另一个而不更改任何配置或修改任何源代码.现在我的构建与失败的消息"没有源代码"运行时我nosetests覆盖范围.

NoSource: No source for code: '/home/matthew/.hudson/jobs/myproject/workspace/tests/unit/util.py'
. . . 
No source for code: '/home/matthew/.hudson/jobs/myproject/workspace/__init__.py'
Run Code Online (Sandbox Code Playgroud)

我唯一的线索是,它说它找不到的文件不存在,但它们从来没有,它们不应该是.例如,在后者中,Hudson的工作区不是Python模块,因此__init__.py不会存在.

更新:我已经确认这不是哈德森问题.当我在目录本身运行带有覆盖的nostests时,我看到类似的消息.再一次,覆盖范围正在寻找的文件从来没有开始,这使得这非常令人费解.

python continuous-integration code-coverage nosetests

33
推荐指数
5
解决办法
7942
查看次数

你如何从pycharm运行nosetest?

你如何从pycharm执行nosetest来运行所有的单元测试?

我知道pycharm支持python的unittest和py.test,并且他们将在pycharm 1.1中正确支持nosetests,但我想知道是否有解决方法.

python unit-testing nose nosetests pycharm

30
推荐指数
1
解决办法
2万
查看次数

使用pip安装nose,但是bash无法识别mac上的命令

我正试图在我的计算机上安装鼻子来学习"学习Python困难之路"教程,但似乎无法让它工作.我正在使用pip安装:

$ pip install nose
Run Code Online (Sandbox Code Playgroud)

我回来了:

Requirement already satisfied (use --upgrade to upgrade): nose in /usr/local/lib/python2.7/site-packages
Cleaning up...
Run Code Online (Sandbox Code Playgroud)

但是,当我运行命令nosetests时,我得到:

-bash: nosetests: command not found
Run Code Online (Sandbox Code Playgroud)

我认为我的PATH有问题,老实说我不知道​​.任何帮助将不胜感激!

python python-module nose nosetests python-2.7

29
推荐指数
4
解决办法
4万
查看次数

如何使用nosetests测量python单元测试的执行时间?

有没有办法计算由nosetests运行的单个Python测试的执行时间?

python nosetests

27
推荐指数
2
解决办法
7858
查看次数

运行nose --with-coverage来获取所有包文件,但不包含其他依赖项和库

我的项目文件夹(是的 - 我知道这是最好的做法)是这样的:

.
??? app.py
??? otherscript.py
??? tests/
??? tools/
    ??? __init__.py
    ??? toolfile.py
Run Code Online (Sandbox Code Playgroud)

我需要nose --with-coverage测试.py主文件夹,tools文件夹中的脚本并排除tests文件夹(虽然我真的不在乎排除它)

当我运行基本

nose --with-coverage
Run Code Online (Sandbox Code Playgroud)

我得到了所有安装的依赖项和库(烧瓶,请求等)的报道

我跑的时候

nose --with-coverage --cover-package=folder name (or . or ./)
Run Code Online (Sandbox Code Playgroud)

我得到了测试文件夹的覆盖范围.该tools/__init__.py文件,app.py但不包括其余脚本:

> (opentaba-server) D:\username\pathto\opentaba-server>nosetests --with-coverage -- cover-package=./ ... Name                                      

> Stmts   Miss  Cover   Missing
> ----------------------------------------------------------------------- Tests\functional_tests\test_return_json      26      0   100%
> Tests\unit_test\test_createdb                 0      0   100%
> Tests\unit_test\test_scrape                   0      0   100% app     
> 63     15    76%   22, 24, …
Run Code Online (Sandbox Code Playgroud)

python nose nosetests

27
推荐指数
3
解决办法
2万
查看次数

从coverage报告中排除abstractproperties

我有一个抽象的基类:

class MyAbstractClass(object):
    __metaclass__ = ABCMeta

    @abstractproperty
    def myproperty(self): pass
Run Code Online (Sandbox Code Playgroud)

但是当我在我的项目中运行nosetests(覆盖率)时,它会抱怨属性def line未经测试.它实际上无法测试(AFAIK),因为抽象类的实例化将导致异常被引发.

有没有解决方法,或者我只需要接受<100%的测试覆盖率?

当然,我可以删除ABCMeta用法并简单地提升基类NotImpementedError,但我更喜欢前一种方法.

python code-coverage abc nosetests coverage.py

23
推荐指数
3
解决办法
4577
查看次数

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

我的SUT看起来像:

foo.py
bar.py
tests/__init__.py [empty]
tests/foo_tests.py
tests/bar_tests.py
tests/integration/__init__.py [empty]
tests/integration/foo_tests.py
tests/integration/bar_tests.py
Run Code Online (Sandbox Code Playgroud)

当我跑步时nosetests --with-coverage,我得到了我宁愿忽略的各种模块的细节.但是我不能使用该 --cover-package=PACKAGE选项,因为foo.py&bar.py不在包中.(请参阅http://lists.idyll.org/pipermail/testing-in-python/2008-November/001091.html之后的帖子, 以了解我没有将它们放入包中的原因.)

我可以将coverage输出限制为foo.py和bar.py吗?

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

python code-coverage nose nosetests

18
推荐指数
2
解决办法
9619
查看次数

通过nosetests测试烧瓶应用时获取IP地址

我的应用程序依赖于request.remote_addr这是None当我运行通过使用nosetests测试app.test_client().post('/users/login', ....).

当我运行测试时,如何模拟IP(127.0.0.1正常工作)? 我已经尝试设置环境变量,使用post()方法发送头文件,我已经通过nosetests,werkzeugs和flaskks文档进行了挖掘,但我尝试过的任何工作都没有.

python testing werkzeug nosetests flask

18
推荐指数
2
解决办法
3420
查看次数

如何将nosetests的输出重定向到文本文件?

我尝试过"nosetests p1.py> text.txt"并且它无法正常工作.

管道此控制台输出的正确方法是什么?

python nosetests

16
推荐指数
1
解决办法
4612
查看次数

一个Nose插件,用于指定单元测试执行的顺序

我希望将Nose用于线上集成测试套件.但是,其中一些测试的执行顺序很重要.

那就是说,我想我会把一个快速的插件拼凑起来用我想要它执行的命令来装饰测试:https://gist.github.com/Redsz/5736166

def Foo(unittest.TestCase):

    @step(number=1)
    def test_foo(self):
        pass

    @step(number=2)
    def test_boo(self):
        pass
Run Code Online (Sandbox Code Playgroud)

通过回顾我曾经想过的内置插件,我可以loadTestsFromTestCase通过装饰的"步骤编号" 简单地覆盖和排序测试:

def loadTestsFromTestCase(self, cls):
    """
    Return tests in this test case class. Ordered by the step definitions.
    """
    l = loader.TestLoader()
    tmp = l.loadTestsFromTestCase(cls)

    test_order = []
    for test in tmp._tests:
        order = test.test._testMethodName
        func = getattr(cls, test.test._testMethodName)
        if hasattr(func, 'number'):
            order = getattr(func, 'number')
        test_order.append((test, order))
    test_order.sort(key=lambda tup: tup[1])
    tmp._tests = (t[0] for t in test_order)
    return tmp
Run Code Online (Sandbox Code Playgroud)

这个方法按照我想要的顺序返回测试,但是当测试由nose执行时,它们没有按此顺序执行?

也许我需要将这种订购概念转移到不同的位置?

更新 …

python nose nosetests

15
推荐指数
1
解决办法
6222
查看次数