2011-04-27 15 views
3

我想在Eclipse中或從命令行運行Google App Engine的Python代碼覆蓋率測試。如何在Eclipse或命令行中爲Google App Engine運行Python代碼覆蓋率測試

通常的Python程序需要這樣的命令行:

coverage run program arguments

我試圖運行谷歌應用程序引擎,但沒有數據從下面的命令行收集:

coverage run [path_to_google_app_engine]/dev_appserver.py [application_options] application_root

它終止服務器後不產生.coverage - 你知道什麼是錯的嗎? 如何停止服務器並獲取.coverage數據?

+0

你在哪裏/如何安裝覆蓋範圍?位置問題導致沙箱代碼。 – ionelmc 2015-04-24 06:19:51

回答

2

我對GAE瞭解不多,但我對coverage.py瞭解很多。如果dev_appserver.py命令在同一個進程中運行服務器,那麼你的命令應該可以工作。如果服務器實際上運行在一個子進程中,請參閱coverage.py文檔中的Measuring subprocesses以瞭解如何獲取所測量的子進程。

+0

不確定95%,但看起來dev_appserver.py不產生進程,但永遠運行http服務器並等待KeyboardInterrupt。如果coverage.py在KeyboardInterrupt後保存結果,它應該可以工作 - 你知道KeyboardInterrupt上的coverage.py會做什麼嗎? 另一個問題可能是,GAE塊文件寫入和結果應該重定向到內存流並保存在數據庫中或呈現在頁面上 - 是否有可能在沒有修補的情況下將覆蓋範圍內的輸出重定向? – Chameleon 2011-04-29 07:43:03

+0

它變得有效。 – Chameleon 2012-06-29 09:13:00

+0

這不適用於當前版本的GAE。他們在GAE的代碼中執行一些沙盒(例如,禁用加載二進制模塊,刪除服務器上不支持的模塊和方法)。覆蓋範圍現在會爲所有內容生成數據**,除了實際的應用程序代碼! http://stackoverflow.com/questions/16785929/ – 2013-05-30 06:06:51

相關問題