Django 测试:在 Travis CI 中分离单元测试和集成测试

2 投票
1 回答
1157 浏览
提问于 2025-04-19 18:26

我有一个Django项目,里面已经写了一些单元测试,使用的是标准的Django测试框架,这个效果很好。现在我想用Travis CI来设置集成测试,但遇到了一些问题:

  1. Django的文档没有说明如何把独立的 ./manage.py test 单元测试和需要外部服务的集成测试分开。我希望在我的开发机器上只运行单元测试,而在Travis CI上同时运行单元测试和集成测试。我该怎么分开这两者呢?
  2. 我在Travis CI上已经有一个数据库,里面填充了一些在设置时生成的初始数据。我希望集成测试能用这些数据,但单元测试仍然使用一个临时的只用于测试的数据库。我该怎么做到这一点呢?

1 个回答

1

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

manage.py test --help

2- 你可不想这么做。对生产环境或半生产环境的数据库进行测试是非常不好的做法。你需要为每个测试创建一些准备数据,并且在一个临时数据库上运行你的测试。如果你真的想知道答案,已经有人在 这里 提过了。

撰写回答