2012-03-18 56 views
2

到目前爲止,我在更​​改代碼時更新了index.yaml的唯一方法是通過瀏覽器或使用TransparentProxy訪問URL,並通過應用程序通過dev_appserver。使用單元測試保持index.yaml更新

這很糟糕。

有沒有辦法在單元測試運行器中引導appengine環境,以便使用什麼過程來更新index.yaml,而不會導致單線程dev_appserver的開銷。

差異是顯着的。我的測試套件(80%覆蓋率)運行時間爲2分鐘,但不更新index.yaml,如果我使用TransparentProxy將請求轉發到端口8080運行相同的套件,則index.yaml確實會更新,但需要大約4個小時。再次,這很糟糕。

回答

2

您可以使用我的鼻子插件爲此,稱爲nose-gae-index。它使用SDK中的內部IndexYamlUpdater類,所以它肯定比代理請求更好。

儘管有這些改進,但絕對沒有必要始終啓用它。我在部署之前使用它並檢查由新提交導致的對索引配置的更改。

切記不要在測試中使用需要索引的查詢,否則它們也會被添加到配置文件中!

+0

Joachim。你是一個拯救生命的人,這已經讓我在後面痛苦了好幾個月。我其實正在切換到py.test,所以我只是把你的插件的肉,並使其成爲我的設置/拆解的一部分。非常感謝你,我希望我能爲你投更多。 – 2012-03-19 00:22:32