2014-09-04 156 views
2

我有一个Django项目,已经有一些使用标准Django测试框架的单元测试。这很好。现在我想建立集成测试与特拉维斯CI,但我打几个阻滞剂:Django测试:独立的单元和集成测试Travis CI

  1. Django文档不说如何自足./manage.py test单元测试从集成测试,需要外部业务的隔离要成立。我只想在我的开发机器和Travis CI上运行单元测试来运行单元测试和集成测试。我如何区分这些?
  2. 我有Travis CI上的数据库填充了一些在安装过程中填充的初始数据。我希望集成测试能够与之一起运行,但单元测试将继续使用临时仅测试数据库。我怎么做?

回答

1

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

manage.py test --help 

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

+1

在编写单元测试时,你真的不要对生产数据库进行测试。但是当运行集成测试时(如Travis CI),您的生产数据库就是您的测试数据库。当您测试与也可能修改/与数据库交互的外部工具的集成时,您希望使用“生产”数据库。 – 2014-09-06 18:48:07