2014-09-04 204 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