我试图通过鼻子测试来识别我的测试,但它没有正确运行我的任何测试.
我有以下文件结构
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选项
我已经尝试了各种组合,似乎无法通过鼻子测试来做我想要的一贯
我有一个测试套件,它作为更大的构建框架的一部分执行,用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()正确使用.
我使用nosetests进行一些测试.但是,在测试运行完毕后,测试过程就在那里,并且不会退出.反正有诊断吗?Python是否具有类似于向Java发送kill -QUIT的工具,它将打印堆栈跟踪?
我正在尝试根据learnpythonthehardway教程安装以下内容:
我访问了这些链接并点击了下载按钮; 现在每个文件都在我的下载文件夹中,我解压缩/解压缩它们 - 不确定这意味着什么,但它似乎是必需的.他们"安装"了吗?如果没有,真正安装它们意味着什么?我已经尝试nosetests在终端上打字(正如书中所说的那样),并尝试过,easy_install但这似乎不起作用.看来我的理解在很多方面受到限制.
我得到以下-bash: nosetests: command not found,但我想得到:
nosetests . ---------------------------------------------------------------------- Ran 1 test in 0.007s
OK
我正试图尝试使用Google Translate API的小Python脚本.
我在哪里安装API或我必须做什么,所以nosetest不再告诉我
ImportError: No module named apiclient.discovery
Run Code Online (Sandbox Code Playgroud)
脚本运行正常,我按照你的意愿导入它并用pip安装它,但是我找不到任何关于如何使用nosetest工作的信息.
任何帮助将不胜感激!:)
我想为我的Python项目创建一组基准.我希望看到这些基准测试的性能随着我引入新代码而改变.我想以与测试Python相同的方式执行此操作,方法是运行实用程序命令,nosetests并获得格式良好的读数.
nosetests该nosetests工具通过在我的目录结构中搜索任何命名的函数test_foo.py并运行其中test_bar()包含的所有函数来工作.它运行所有这些函数并打印出它们是否引发了异常.
我想要类似的东西搜索所有文件bench_foo.py并运行所有包含的函数bench_bar()并报告它们的运行时.
这样的工具存在吗?
如果不是什么好的起点?有些nose来源适合这个吗?
它在文档中提到(http://nose.readthedocs.org/en/latest/api/core.html),但似乎没有任何示例,尝试它似乎在cwd中运行所有测试.
我一直在从我的库中收集单元测试覆盖率,但是由于我没有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% 的覆盖率。
我正在尝试使用不同的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方法?我也研究了测鼻仪发生器,但它似乎也没有办法.
我正在试图弄清楚如何为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) nosetests ×10
python ×10
testing ×2
unit-testing ×2
benchmarking ×1
google-api ×1
importerror ×1
install ×1
nose ×1
regex ×1
setup.py ×1
tdd ×1
terminal ×1