2012-07-25 64 views
2

我在C++中使用XCode進行測試驅動開發。如何讓XCode 4在保存更改時自動生成並運行代碼?

它發生,我認爲我會節省大量的時間,如果可以的XCode自動構建和運行我的測試中,每次我保存。

有什麼辦法(通過腳本的XCode或其他方式)來做到這一點?谷歌似乎沒有任何線索。

我在使用解釋型語言時已經看到了這個工作流程,它的確提高了生產力。

讓我們假設我的機器是足夠快,以構建和運行在幾秒鐘的測試。

回答

0

自動?沒有。你可以編寫你自己的fsevent monitor代理。當發生需要重建的更改時,請執行相應的操作。

解決這個問題的簡單方法是:您可以配置xcode以在構建時保存。您不需要明確保存,只需啓用此首選項即可運行。從這個意義上說,擊球就像擊球一樣簡單,並且當你擊球時按照正確的順序執行保存,編譯和運行。你可能需要一箇中間目標或計劃。

另一種選擇是使用一個VC提交作爲測試的構建和運行觸發器(看到您的評論:用樹枝)。

+1

完美!不能相信我沒有想到這一點:)我只是打蘋果+ R而不是Apple + S,它很甜蜜。謝謝。 – Carl 2012-07-25 22:42:44

+0

@carleeto歡迎您 – justin 2012-07-25 22:43:31

0

不,我不認爲這可以做到。

大多數項目沒有在第二它需要的分數構建和測試它是實際的每次保存反正做(即,每當Xcode的自動保存)。

很多工作已經進入基礎設施剛開Xcode的現場錯誤和警告。只要你的項目不是太奇怪,那些現場錯誤應該給出一個相當不錯的代理來實際構建它。

對於測試,如果您尚未使用它,可能需要查看持續集成。


自動保存之前長大的灰鬍須可能養成了偶爾使用鑰匙命令手動保存的習慣。這些用戶可以通過將運行測試的密鑰命令替換爲用於手動保存的密鑰命令來更改該習慣。

+0

持續集成進入圖片只有當你提交代碼來源控制。我談論的工作流程甚至在提交源代碼控制之前。 構建警告和錯誤只是不夠好的替代品。 – Carl 2012-07-25 22:15:57

1

如果你的目標是C++,那麼你很可能是運氣不好。

用Objective-C中,有一個名爲«注射»項目:
http://injectionforxcode.com/

它跟蹤的更改到您的項目文件,並在發生變化時,它重新建立文件作爲類別,放在裏面一束。

然後,該包將被動態加載到正在運行的應用程序中,並且類別中的內容會替換正在運行的代碼。

但它是Objective-C。 C++沒有這樣的運行時和功能。 無論如何,你可能想看看它:)

+0

您可以請指導如何使用xcode 4.6.1和iOS 6.1的注射碼插件。我嘗試過使用它...也有點成功。但不完全是它所說的和證明的。我正在嘗試使用Apple的UICatalog代碼,並且發現當我在導航到該屏幕之前更改ButtonViewController時,則更改會反映出**但是**如果我已經導航到ButtonViewController,則更改是** NOT **反映。 – DShah 2013-04-25 07:35:31

+0

當然是因爲你的控制器需要重新加載... – Macmade 2013-04-25 08:11:40

+0

那麼如何重新加載控制器?因爲當我從Button返回到TableViewController並更改Button代碼時,它也沒有得到反映。代碼注入僅適用於加載頁面之前的第一次。 – DShah 2013-04-25 09:08:03

相關問題