标签: nosetests

谁知道nosetest的-m,-i和-e如何工作?

我试图通过鼻子测试来识别我的测试,但它没有正确运行我的任何测试.

我有以下文件结构

Project
    +----Foo/
          +----__init__.py
          +----bar.py
    +----test/
          +----__init__.py
          +----unit/
                +----__init__.py
                +----bar_test.py
          +----functional/
                +----__init__.py
                +----foo_test.py
Run Code Online (Sandbox Code Playgroud)

在bar_test.py内

class BarTest(unittest.TestCase):
     def bar_1_test():
         ...
Run Code Online (Sandbox Code Playgroud)

在foo_test.py中

class FooFTest.py
     def foo_1_test():
         ...
Run Code Online (Sandbox Code Playgroud)

使用-m,-i,-e nosetests选项

  • 我需要运行单元测试的正则表达式是什么(在单元/下,BarTest类中的测试)
  • 什么是我需要的正则表达式只运行功能测试(在函数/,在类FooFTest中的测试)

我已经尝试了各种组合,似乎无法通过鼻子测试来做我想要的一贯

python regex unit-testing nosetests

10
推荐指数
1
解决办法
4760
查看次数

nosetests框架:如何将环境变量传递给我的测试?

我有一个测试套件,它作为更大的构建框架的一部分执行,用Python编写.一些测试需要参数,我想使用环境变量传递参数.

根据文档显然,nosetests runner有一个env参数,可以满足我的需求.但是,似乎它不应该像它应该的那样工作?

这是一个最小的测试脚本,可以解释这个问题:

#!/usr/bin/env python
# pip install nose

import os, nose, unittest

class Test(unittest.TestCase):
    def test_env(self):
        self.assertEquals(os.environ.get('HELLO'), 'WORLD')

if __name__ == '__main__':
    nose.run(env={'HELLO': 'WORLD'})
Run Code Online (Sandbox Code Playgroud)

断言失败,因为env参数未传递给测试.有谁知道为什么?

注意:我通过启动控制台nosetests工具解决了这个问题:

#!/usr/bin/env python

import sys, os, nose, unittest, subprocess

class Test(unittest.TestCase):
    def test_env(self):
        self.assertEquals(os.environ.get('HELLO'), 'WORLD')

if __name__ == '__main__':
    subprocess.Popen(['nosetests', sys.argv[0]],
                     env={'HELLO': 'WORLD'}).wait()
Run Code Online (Sandbox Code Playgroud)

然而,这感觉就像一个kludge,我仍然有兴趣学习nose.run()正确使用.

python nosetests

10
推荐指数
2
解决办法
5862
查看次数

Python进程不会退出

我使用nosetests进行一些测试.但是,在测试运行完毕后,测试过程就在那里,并且不会退出.反正有诊断吗?Python是否具有类似于向Java发送kill -QUIT的工具,它将打印堆栈跟踪?

python nosetests

9
推荐指数
1
解决办法
2251
查看次数

初学者安装nosetests包

我正在尝试根据learnpythonthehardway教程安装以下内容:

  1. 请点击http://pypi.python.org/pypi/pip
  2. http://pypi.python.org/pypi/distribute分发
  3. 来自http://pypi.python.org/pypi/nose/的鼻子
  4. 来自http://pypi.python.org/pypi/virtualenv的 virtualenv

我访问了这些链接并点击了下载按钮; 现在每个文件都在我的下载文件夹中,我解压缩/解压缩它们 - 不确定这意味着什么,但它似乎是必需的.他们"安装"了吗?如果没有,真正安装它们意味着什么?我已经尝试nosetests在终端上打字(正如书中所说的那样),并尝试过,easy_install但这似乎不起作用.看来我的理解在很多方面受到限制.

我得到以下-bash: nosetests: command not found,但我想得到:

nosetests . ---------------------------------------------------------------------- Ran 1 test in 0.007s OK

python terminal install nosetests

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

Nosetest和Google API:"没有名为apiclient.discovery的模块"

我正试图尝试使用Google Translate API的小Python脚本.
我在哪里安装API或我必须做什么,所以nosetest不再告诉我

ImportError: No module named apiclient.discovery
Run Code Online (Sandbox Code Playgroud)

脚本运行正常,我按照你的意愿导入它并用pip安装它,但是我找不到任何关于如何使用nosetest工作的信息.

任何帮助将不胜感激!:)

python testing google-api nosetests importerror

8
推荐指数
1
解决办法
2499
查看次数

像nosetests一样的Python基准测试工具?

我想要的是

我想为我的Python项目创建一组基准.我希望看到这些基准测试的性能随着我引入新代码而改变.我想以与测试Python相同的方式执行此操作,方法是运行实用程序命令,nosetests并获得格式良好的读数.

我喜欢什么 nosetests

nosetests工具通过在我的目录结构中搜索任何命名的函数test_foo.py并运行其中test_bar()包含的所有函数来工作.它运行所有这些函数并打印出它们是否引发了异常.

我想要类似的东西搜索所有文件bench_foo.py并运行所有包含的函数bench_bar()并报告它们的运行时.

问题

这样的工具存在吗?

如果不是什么好的起点?有些nose来源适合这个吗?

python testing benchmarking nosetests

8
推荐指数
1
解决办法
1438
查看次数

8
推荐指数
2
解决办法
5356
查看次数

如何测试setup.py?

我一直在从我的库中收集单元测试覆盖率,但是由于我没有setup.py.

有没有人测试过setup.py使用nosetests?这是我的文件结构:

setup.py
library/*.py
tests/test*.py
doc/source/*.rst
Run Code Online (Sandbox Code Playgroud)

这是我的测试命令。我在 setup.py 所在的同一目录中运行它:

nosetests --with-cov --with-doctest --doctest-extension=.rst
Run Code Online (Sandbox Code Playgroud)

覆盖输出是这样的:

----------- coverage: platform win32, python 2.7.5-final-0 -----------
Name                                  Stmts   Miss  Cover
---------------------------------------------------------
library\__init__                         18      0   100%
setup                                    10     10     0%
....
tests\xxxxxxx                            8      2    75%
---------------------------------------------------------
TOTAL                                   253     39    85%
----------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

因为 setup.py 对我的覆盖率贡献了 0,所以我永远不会达到 100% 的覆盖率。

python nosetests setup.py

8
推荐指数
0
解决办法
1336
查看次数

如何参数化python unittest setUp方法?

我正在尝试使用不同的setUp方法运行相同的测试用例.我尝试过使用nosetests并参数化,但似乎它不支持参数化setUp方法.这是我正在尝试做的一个例子:

...
from nose_parameterized import parameterized

class Example(unittest.TestCase):

    @parameterized.expand(['device1', 'device2'])
    def setUp(self, device):
        desired_caps = {}
        desired_caps['key1'] = device
        desired_caps['key2'] = 'constant value'

    self.driver = webdriver.Remote(url, desired_caps)

    def tearDown(self):
        self.driver.quit()

    def test_app_launch(self):
        # assert something
Run Code Online (Sandbox Code Playgroud)

错误是:TypeError: setUp() takes exactly 2 arguments (1 given).

有没有其他方法如何参数化setUp方法?我也研究了测鼻仪发生器,但它似乎也没有办法.

python unit-testing nosetests

8
推荐指数
1
解决办法
2541
查看次数

我怎么得到'InternalError:table"dev~candbook !!当我刚刚创建数据存储区时,实体"已经存在"?

我正在试图弄清楚如何为GAE设置测试驱动开发.

我开始测试:

nosetests -v --with-gae  
Run Code Online (Sandbox Code Playgroud)

我一直收到错误:

InternalError: table "dev~guestbook!!Entities" already exists
Run Code Online (Sandbox Code Playgroud)

在我在setUp()中创建数据存储区之前,数据存储区不存在,但是我仍然收到实体已经存在的错误?

我正在使用GAE教程中的代码.

这是我在functional_tests.py中的测试代码:

import sys, os, subprocess, time, unittest, shlex   
sys.path.append("/usr/local/google_appengine")    
sys.path.append("/usr/local/google_appengine/lib/yaml/lib")    
sys.path.append("/usr/local/google_appengine/lib/webapp2-2.5.2")    
sys.path.append("/usr/local/google_appengine/lib/django-1.5")    
sys.path.append("/usr/local/google_appengine/lib/cherrypy")    
sys.path.append("/usr/local/google_appengine/lib/concurrent")    
sys.path.append("/usr/local/google_appengine/lib/docker")    
sys.path.append("/usr/local/google_appengine/lib/requests")    
sys.path.append("/usr/local/google_appengine/lib/websocket")    
sys.path.append("/usr/local/google_appengine/lib/fancy_urllib")    
sys.path.append("/usr/local/google_appengine/lib/antlr3")    

from selenium import webdriver    
from google.appengine.api import memcache, apiproxy_stub, apiproxy_stub_map   
from google.appengine.ext import db    
from google.appengine.ext import testbed    
from google.appengine.datastore import datastore_stub_util     
from google.appengine.tools.devappserver2 import devappserver2    


class NewVisitorTest(unittest.TestCase):    

    def setUp(self):    
        # Start the dev server  
        cmd = "/usr/local/bin/dev_appserver.py /Users/Bryan/work/GoogleAppEngine/guestbook/app.yaml --port 8080 --storage_path /tmp/datastore --clear_datastore --skip_sdk_update_check"  
        self.dev_appserver …
Run Code Online (Sandbox Code Playgroud)

python tdd google-app-engine nosetests

8
推荐指数
1
解决办法
417
查看次数