【问题标题】:Django testing: separate unit and integration tests on Travis CIDjango 测试:Travis CI 上的独立单元和集成测试
【发布时间】:2014-09-04 07:32:46
【问题描述】:

我有一个 Django 项目,它已经使用标准 Django 测试框架进行了一些单元测试。效果很好。现在我想用 Travis CI 设置集成测试,但我遇到了几个障碍:

  1. Django 文档没有说明如何将独立的./manage.py test 单元测试与需要设置外部服务的集成测试分开。我只想在我的开发机器和 Travis CI 上运行单元测试来运行单元测试和集成测试。如何区分这些?
  2. 我在 Travis CI 上的数据库中填充了一些在设置过程中填充的初始数据。我希望集成测试以此运行,但单元测试继续使用临时的仅测试数据库。我该怎么做?

【问题讨论】:

    标签: python django unit-testing integration-testing travis-ci


    【解决方案1】:

    1- 你可以通过 manage.py test 命令运行任何你想要的测试。所以你可以创建一个文件 unit_test.py 并只运行这个文件中的测试。

    manage.py test --help
    

    2- 你不想那样做。对生产/半生产数据库运行测试是一种耻辱。您需要为每个测试创建夹具,并针对临时数据库运行测试。 如果你真的想知道答案,已经回答了here

    【讨论】:

    • 在编写单元测试时,您真的不需要针对生产数据库进行测试。但是在运行集成测试时(如在 Travis CI 中),您的生产数据库就是您的测试数据库。当您测试与可能也修改/与数据库交互的外部工具的集成时,您希望使用“生产”数据库。
    猜你喜欢
    • 2018-11-21
    • 2019-04-29
    • 1970-01-01
    • 2020-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多