【问题标题】:Restart the process where the error has been detected重新启动检测到错误的进程
【发布时间】:2017-03-07 22:56:09
【问题描述】:

在 Django 项目中,可以创建单元测试来验证我们目前所做的工作。原理很简单。我们必须在 shell 中执行命令python3 manage.py test。当在程序中检测到错误时,shell 将显示它并停止进程。但是,程序有一点差距。如果我们有几个错误,我们必须纠正它并重新启动整个过程。这个过程可能需要几分钟,这取决于我们的程序。有没有办法重新启动检测到错误的进程而不是重新启动整个过程?

编辑:

事实上,我遇到的另一个问题是保留数据库而不是重新创建它。我怎么能做这种事?

【问题讨论】:

    标签: python django django-testing


    【解决方案1】:

    如果您只想自动运行失败的测试,您需要使用第三方测试驱动程序,例如 Nose 或创建您自己的测试驱动程序。但这不值得,因为...

    您可以指定要运行的特定测试,方法是提供任意数量的 “测试标签”到 ./manage.py 测试。每个测试标签可以是一个完整的 包、模块、TestCase 子类或测试的 Python 虚线路径 方法。例如:

    # Run just one test method
    $ ./manage.py test animals.tests.AnimalTestCase.test_animals_can_speak
    

    来源:https://docs.djangoproject.com/en/1.10/topics/testing/overview/

    这种方法可以用来只重新运行那些失败的。

    请注意,第三方测试运行器可能会在您每次运行测试时重新创建数据库 - 即使只是失败的测试。另一方面,django 默认测试运行器具有 --keep 选项,允许重用数据库。更多详情见:https://stackoverflow.com/a/37100979/267540

    【讨论】:

    • 这不是很好,因为他们必须在开始时重新创建数据库。
    • 这就是-k 标志出现的地方
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-27
    • 2016-09-26
    • 2010-11-25
    • 2018-05-13
    • 1970-01-01
    相关资源
    最近更新 更多