问题标签 [django-nose]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 我如何告诉 django-nose 我的测试在哪里?
我在测试目录中对 Django 应用程序进行了测试:
__init__.py
Django 测试运行程序要求我在应用程序测试目录的文件中放置一个 suite() 函数。该函数返回当我执行 $ python manage.py test 时将运行的测试用例
我安装了 django-nose。当我尝试使用 django-nose 运行测试时,运行了 0 个测试:
如果我直接指向测试模块,则运行测试:
为什么 django-nose 的测试运行器找不到我的测试?我必须做什么?
django - Django_nose 不加载基本装置,例如 django_site example.com 条目或管理员权限
使用当前稳定的 django_nose (0.1.3) 模型甚至无法正确找到和加载,运行测试时出现以下异常:
使用 django_nose 的 git 版本,我设法将我的模型正确地创建到测试数据库中,但是它们都是空的,使用 Django 的 testrunner 我将一些基本数据加载到表中,例如 django_site 和 auth_permission 表:
当我在安装和设置 django_nose 的情况下运行测试套件时,出现以下异常:
有任何想法吗?
更新:使用 -v 2 运行,它似乎正在为应用程序运行同步后处理程序 (syncdb)
所以它似乎正在添加它们,但在某个地方它们被删除了。
进一步更新:
查看 MySQL Query 日志,事件顺序是
- 在测试数据库上做一个同步数据库
- 截断每个表(为什么?,这是我的问题所在)
- 运行测试
查询日志中的截断示例:
为什么表被截断?是否这样测试不会相互污染,有没有办法禁用它?
我相信这是最后的更新:
使用标准的 django 跑步者,同样的事情会发生,
- 表被创建
- 同步后插入数据
- 表格被截断
- 调用更改表以设置 AUTO_INCREMENT = 1
除了下一步:
数据被重新插入
插入
django_site
(domain
,name
)值('example.com','example.com')
不知道为什么会发生这种情况,但不是 django_nose
django - django-nose 单元测试芹菜任务...缺少数据库数据
我正在使用 django-nose 为 celery 任务编写单元测试。这是相当典型的;一个空白测试数据库(REUSE_DB=0),在测试时通过夹具预填充。
我遇到的问题是,即使 TestCase 正在加载夹具并且我可以从测试方法访问对象,但在异步 celery 任务中执行相同的查询时会失败。
我检查了 settings.DATABASES["default"]["name"] 在测试方法和被测任务中是否相同。我还验证了被测任务在作为常规方法调用调用时行为正确。
这就是我没有想法的地方。
这是一个示例:
django - Django、nose 和 selenium .. 初始状态错误
我已经为 Django 1.3.1 安装了所有东西: django-nose
, django-nose-selenium
, 并设置了测试运行器:
首先,似乎通过运行 command: $./manage.py test
,Django 的内部测试开始运行而不是 Nose。
其次,通过运行$nosetests
我得到这个:
任何想法 ??
django - Django-nose --with-profile 没有结果(“0 个函数调用”)
我正在尝试诊断一些运行缓慢的单元测试,但我没有运气让探查器与django-nose一起工作。我想出了一个关于一个全新的 Django 项目的 repo 案例。
这应该在当前目录中创建一个新的 Django 项目,在 virtualenv 中安装一些依赖项,创建一个有效的 settings.py,然后运行一个新的单元测试。
我期待在输出中看到各种函数调用。相反,我得到以下信息:
我已经尝试使用带有nose-cprof 的 cProfiler,但结果相似。任何人都可以让这个相同的项目工作,或者指向我另一个解决方案来分析这个测试吗?
django-nose - Django-nose 在测试运行期间不创建仅测试模型
我安装了 django-nose 1.0 作为 Django 1.3.1 项目的测试运行程序。我正在遵循pypi 页面上有关仅测试模型的说明。
这是我的 settings.py testrunner 配置:
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
我已经使用这个 testrunner 运行了几个月的测试没有问题。现在我正在尝试测试一个抽象类,并且我正在使用仅测试模型,但是我编写的特定测试会引发错误。
根据文档,我只需要将测试类包含在测试期间导入的文件之一中。我将测试放在“测试”文件夹中,并分解为几个较小的测试文件。这是我的测试/model_tests.py(模型和应用程序出于工作原因故意重命名):
我在 setUp 的第一行收到一个错误:
如果我在测试中设置一个断点并检查数据库,则表“tests_foo”(或任何名称中带有“foo”的表)不存在。
关于为什么只测试模型没有加载的任何想法?
django - 如何知道何时使用 django-nose 运行测试
我django-nose
用来运行我的测试,我需要知道它们何时从我的视图/模型方法/等内部运行,因此我可以跳过检查缓存值或调用一些项目外部资源等内容,例如仅在运行测试时。
最好有某种可用的环境变量或类似的东西,这样我就可以做类似的事情:
或者
有人知道实现这一目标的方法吗?
在此先感谢您的帮助:)
django - 如何正确安装 django-nose?
我无法让 django-nose 运行。
根据安装说明,我通过以下方式安装:
- 跑步
pip install django-nose
- 添加
'django_nose'
到INSTALLED_APPS
settings.py (包括作为最后一个应用程序,以防可能的应用程序顺序问题) - 添加
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
到 settings.py
当我运行测试 iemanage.py test
时,我得到:
我想我需要同步数据库。我正在使用南方。当我使用manage.py syncdb
时,django_nose
不会出现在同步应用程序列表或“未同步(使用迁移)”应用程序列表中。
最后,当我尝试与 south 同步时,即manage.py schemamigration django_nose --initial
,我得到:
我在 virtualenv 中安装了带有 South 版本 0.7.5 的 Django 1.4。
我究竟做错了什么?如果没有,我该如何调试这个安装问题?
python - 为什么 django-nose 运行测试两次?
我有以下型号:
和以下测试
和以下设置:
当我尝试python manage.py test polls
测试运行两次。以下是输出:
但是,当我尝试不使用时TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
,测试只运行一次。以下是输出:
请告诉我有什么问题吗?为什么 django-nose 运行测试两次?
OT:对于相同的模型,django_nose 比 unittest 花费更多的时间。
编辑:
这是文件夹结构:
django - 鼻子没有找到 Django 测试
我正在尝试在我当前的项目中使用 Django-nose,但我不知道如何让鼻子运行我的测试。于是我开始了一个简单的Django 1.4.1项目来了解nose。但即使在这个简单的测试项目上,我也无法让它运行。
在我继续之前:我知道 Stackoverflow 上有很多类似的问题,例如这个:
但是在谷歌搜索、阅读博客文章和 StackOverflow 答案之后,我仍然无法让它运行。
我如何设置我的测试项目
- 创建虚拟环境。
pip install django django-nose nose
.- 使用 . 创建项目
django-admin.py startproject djangonosetest
。 - 创建应用
manage.py startapp testapp
编辑settings.py:
- 设置
ENGINE
为django.db.backends.sqlite3
- 添加
django_nose
,testapp
到INSTALLED_APPS
- 添加
TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
.
- 设置
跑
manage.py test
但我得到的只是这个输出:
但至少应该运行默认测试用例。
当我运行python manage.py test djangonosetest.testapp.tests:SimpleTest
时,它将运行测试。但是,如果我必须为我拥有的每个测试文件都这样做,那似乎有点矫枉过正。但它证明测试可以运行。
当我运行manage.py test -v 3
(高详细级别)时,这出现了:
鼻子确实找到了我的 tests.py,但由于某种原因正在跳过它。
文件夹结构
设置.py
测试代码
测试代码是 Django 创建的默认 TestCase。
那么我如何告诉 Django-nose/nose 我的测试在哪里呢?
更新
如果发现有关该主题的有趣的 Google Groups 帖子和 Stackoverflow 答案:
两者都归结为鼻子会跳过可执行文件的事实。这就是为什么我得到tests.py is executable; skipped
. 问题是该文件不可执行:
我也用 ux、gx 和 ox 尝试过,但无论如何都跳过了鼻子。我觉得这是一个错误。该文件在鼻子中找到,不可执行但仍被跳过。
一种解决方法是使用 --exe 开关。运行manage.py test --exe
运行测试。虽然它比其他解决方法更好,但我对该解决方案并不完全满意。