Django 和 Tox 测试

Django and Tox testing

我有一个 django 包,我喜欢使用 tox 和 python manage.py test 命令针对不同版本的 django 进行测试。 在较新的版本中,django 有

from django.urls import reverse

可用,但这在例如Django 1.8,因为它在差异路径中,但我也在尝试测试这个版本。

有人可以给我指点资源以了解我如何仍然可以通过毒物测试吗? 测试这个的正确方法是什么?我可以根据 django 版本进行某种条件导入吗? 或者可能像

try:
    from django.urls import reverse
except ImportError:
    from django.core.urlresolvers import reverse

我只是不确定这是否是标准和最安全的方式:)

谢谢!

tox 配置

[tox]
envlist =
    {py27,py35}-django18,
    {py27,py35}-django19,
    {py27,py35}-django110,
    {py27,py35,py36,py37}-django111,
    {py35,py36,py37}-django20,
    {py35,py36,py37}-django21,
    {py35,py36,py37}-django22,
    {py35,py36,py37,py38}-django30,
    {py38,py39,py310}-django40,

[testenv]
commands =
    python manage.py test

deps =
    django18: django==1.8.*
    django19: django==1.9.*
    django110: django==1.10.*
    django111: django==1.11.*
    django20: django==2.0.*
    django21: django==2.1.*
    django22: django==2.2.*
    django30: django>=3.0a1,<3.1
    django40: django==4.0.*

这不是 tox 需要处理的,因为 tox 只是在驱动测试运行器,在你的情况下 python manage.py test

您需要更新代码 and/or 您的测试才能通过 Django 1.8 的 python manage.py test