2012-04-20 189 views
2

我從一個Python項目中構建了一個Debian軟件包,該項目依賴於一系列Debian軟件包的工作。 Python項目還包含單元和集成測試(使用py.test)。在pBuilder環境中運行Python集成測試

因爲我的項目依賴於一些Debian軟件包,所以我需要將這些軟件包安裝在測試環境中,他們應該驗證我的模塊與這些軟件包一起工作正常(我想確保我的模塊不會中斷這些庫的更新)。

我想把這些測試環境的配置和執行放到Makefile中。這些測試應該既可以在開發人員工作站上運行,也可以在Jenkins驅動的集成服務器上運行。

我對我的包的完整integrationtest目前的方法是:

  1. 創建pBuilder環境
  2. 安裝從Debian的控制文件的依賴性爲pBuilder ENV
  3. 這裏面pBuilder環境推出PY。測試,還使用virtualenv/tox來測試不同的Python解釋器版本
  4. 從測試環境收集測試結果(py.test可以生成很好的JUnit-like test output其中的Jenkin s很容易發佈)

不幸的是我找不到任何提示如何實現這個東西 - 尤其是如何做3)。我能找到的所有文檔都是關於構建軟件包,而不是運行測試。

任何人都可以提供一些提示我如何建立這樣的測試設置?另外,我想知道是否有意義做我想做的事情。其他人如何測試(Python)模塊與其他Debian軟件包的集成?

回答

5

我假設你想在構建包裝時運行測試套件。

1)將check目標添加到您的包的Makefile中,該Makefile運行包含所有virtualenv/tox魔法的實際測試套件;例如: -

.PHONY: check 
check: 
    ./runtests.sh 

runtests.sh運行腳本解釋器的檢查,然後啓動PY。測試

2)配置您的debian/rules實際運行測試

2A)如果你使用CDBS,在您的Debian的開頭添加以下行/規則

DEB_MAKE_CHECK_TARGET = check 

2B)如你使用debhelper,那麼dh_auto_test腳本應該爲你自動運行測試(假設 a check目標在你的Makefile中)

2C)如果你有一個自定義debian/rules,運行全成後,「檢查」目標打造

1

怎麼辦其他測試與其他Debian的 包(Python)的模塊集成?

一種選擇是配置一個全新的系統來在虛擬機或便宜的雲服務器上運行測試。

如果您在pBuilder deadset,你可以在http://packaging.ubuntu.com/html/chroots.html

調用與 pbuilder execute

其他一些有用的技巧任意腳本