问题标签 [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.

0 投票
5 回答
5989 浏览

python - 我如何告诉 django-nose 我的测试在哪里?

我在测试目录中对 Django 应用程序进行了测试:

__init__.pyDjango 测试运行程序要求我在应用程序测试目录的文件中放置一个 suite() 函数。该函数返回当我执行 $ python manage.py test 时将运行的测试用例

我安装了 django-nose。当我尝试使用 django-nose 运行测试时,运行了 0 个测试:

如果我直接指向测试模块,则运行测试:

为什么 django-nose 的测试运行器找不到我的测试?我必须做什么?

0 投票
2 回答
2212 浏览

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 日志,事件顺序是

  1. 在测试数据库上做一个同步数据库
  2. 截断每个表(为什么?,这是我的问题所在)
  3. 运行测试

查询日志中的截断示例:

为什么表被截断?是否这样测试不会相互污染,有没有办法禁用它?


我相信这是最后的更新:

使用标准的 django 跑步者,同样的事情会发生,

  1. 表被创建
  2. 同步后插入数据
  3. 表格被截断
  4. 调用更改表以设置 AUTO_INCREMENT = 1

除了下一步:

  1. 数据被重新插入

    插入django_sitedomainname)值('example.com','example.com')

不知道为什么会发生这种情况,但不是 django_nose

0 投票
1 回答
817 浏览

django - django-nose 单元测试芹菜任务...缺少数据库数据

我正在使用 django-nose 为 celery 任务编写单元测试。这是相当典型的;一个空白测试数据库(REUSE_DB=0),在测试时通过夹具预填充。

我遇到的问题是,即使 TestCase 正在加载夹具并且我可以从测试方法访问对象,但在异步 celery 任务中执行相同的查询时会失败。

我检查了 settings.DATABASES["default"]["name"] 在测试方法和被测任务中是否相同。我还验证了被测任务在作为常规方法调用调用时行为正确。

这就是我没有想法的地方。

这是一个示例:

0 投票
1 回答
443 浏览

django - Django、nose 和 selenium .. 初始状态错误

我已经为 Django 1.3.1 安装了所有东西: django-nose, django-nose-selenium, 并设置了测试运行器:

首先,似乎通过运行 command: $./manage.py test,Django 的内部测试开始运行而不是 Nose。

其次,通过运行$nosetests我得到这个:

任何想法 ??

0 投票
0 回答
816 浏览

django - Django-nose --with-profile 没有结果(“0 个函数调用”)

我正在尝试诊断一些运行缓慢的单元测试,但我没有运气让探查器与django-nose一起工作。我想出了一个关于一个全新的 Django 项目的 repo 案例。

这应该在当前目录中创建一个新的 Django 项目,在 virtualenv 中安装一些依赖项,创建一个有效的 settings.py,然后运行一个新的单元测试。

我期待在输出中看到各种函数调用。相反,我得到以下信息:

我已经尝试使用带有nose-cprof 的 cProfiler,但结果相似。任何人都可以让这个相同的项目工作,或者指向我另一个解决方案来分析这个测试吗?

0 投票
2 回答
439 浏览

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”的表)不存在。

关于为什么只测试模型没有加载的任何想法?

0 投票
1 回答
983 浏览

django - 如何知道何时使用 django-nose 运行测试

django-nose用来运行我的测试,我需要知道它们何时从我的视图/模型方法/等内部运行,因此我可以跳过检查缓存值或调用一些项目外部资源等内容,例如仅在运行测试时

最好有某种可用的环境变量或类似的东西,这样我就可以做类似的事情:

或者

有人知道实现这一目标的方法吗?

在此先感谢您的帮助:)

0 投票
4 回答
4704 浏览

django - 如何正确安装 django-nose?

我无法让 django-nose 运行。

根据安装说明,我通过以下方式安装:

  1. 跑步pip install django-nose
  2. 添加'django_nose'INSTALLED_APPSsettings.py (包括作为最后一个应用程序,以防可能的应用程序顺序问题)
  3. 添加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。

我究竟做错了什么?如果没有,我该如何调试这个安装问题?

0 投票
1 回答
1867 浏览

python - 为什么 django-nose 运行测试两次?

我有以下型号

和以下测试

和以下设置

当我尝试python manage.py test polls测试运行两次。以下是输出:

但是,当我尝试不使用时TEST_RUNNER = 'django_nose.NoseTestSuiteRunner',测试只运行一次。以下是输出:

请告诉我有什么问题吗?为什么 django-nose 运行测试两次?

OT:对于相同的模型,django_nose 比 unittest 花费更多的时间。

编辑:

这是文件夹结构:

0 投票
2 回答
3845 浏览

django - 鼻子没有找到 Django 测试

我正在尝试在我当前的项目中使用 Django-nose,但我不知道如何让鼻子运行我的测试。于是我开始了一个简单的Django 1.4.1项目来了解nose。但即使在这个简单的测试项目上,我也无法让它运行。

在我继续之前:我知道 Stackoverflow 上有很多类似的问题,例如这个:

我如何告诉 Django-nose 我的测试在哪里?

但是在谷歌搜索、阅读博客文章和 StackOverflow 答案之后,我仍然无法让它运行。

我如何设置我的测试项目

  1. 创建虚拟环境。
  2. pip install django django-nose nose.
  3. 使用 . 创建项目django-admin.py startproject djangonosetest
  4. 创建应用manage.py startapp testapp
  5. 编辑settings.py:

    • 设置ENGINEdjango.db.backends.sqlite3
    • 添加django_nose,testappINSTALLED_APPS
    • 添加TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'.
  6. 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运行测试。虽然它比其他解决方法更好,但我对该解决方案并不完全满意。