【问题标题】:Optional test cases in DjangoDjango 中的可选测试用例
【发布时间】:2018-10-08 15:26:34
【问题描述】:

我们有一个规模适中的业务逻辑测试套件,并且在几秒钟内完成。我们将此作为提交的条件(必须通过的钩子)运行,并且一直有效地阻止最愚蠢的错误使其脱离我的机器。

我们最近开始使用 webdriver 添加端到端前端测试。其中一些测试通过第三方集成。这些测试很有用,但速度很慢,需要网络连接。

我们还有一些非常长的逻辑测试被注释掉(是的!),除非我们怀疑有问题。

是否有一种明智的方法可以将这些慢速测试分开,以便它们仅在我们特别希望它们运行时运行,而不是在您每次运行 ./manage.py test 时运行?

【问题讨论】:

    标签: django django-testing django-tests


    【解决方案1】:

    如果您使用默认的 Django 测试运行程序,则没有简单的方法可以做您想做的事情。也许重新安排测试目录结构,以便您可以调用./manage.py test path/to/directory_with/webtests./manage.py test path/to/directory_with_fast_tests

    另一种解决方案是使用pytest Custom Markers

    如文档所述:

    import pytest
    @pytest.mark.webtest
    def test_send_http():
        pass # perform some webtest test for your app
    

    Register自定义标记:

    # content of pytest.ini
    [pytest]
    markers =
        webtest: mark a test as a webtest.
    

    然后你只需运行pytest -v -m webtest,只会执行标记的测试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-29
      • 1970-01-01
      • 2016-12-10
      • 1970-01-01
      • 2018-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多