2009-04-16 59 views
2

我運行JUnit每晚構建我的計算機上爲Windows XP計劃任務。我的應用程序使用Jaxb,因此某些測試需要使用系統類路徑引用xsd模式。當每晚構建運行,而我不在電腦上,我得到一個錯誤這樣的:運行每晚構建爲XP計劃任務 - Classpath的問題

java.lang.Exception的:無法從classpath中

加載的架構mySchema.xsd然而,當我手動運行構建時,我得不到這樣的錯誤。我的模式的位置的環境變量是一個系統變量,而不是一個用戶變量,所以我不知道是什麼可能導致此錯誤。什麼可能是這個錯誤的原因?

編輯:像哈德森這樣的替代品不是我所要求的。我正在尋求上述技術的解決方案(批處理文件作爲計劃任務運行)。

回答

1

我懷疑是你的工作目錄是對你的期望(而不是CLASSPATH變量專)的不同。如果您以用戶身份運行此計劃任務或作爲系統任務運行,這並不明顯。無論在哪種情況下,都很有必要確定任務的運行位置。

也就是說,雖然我以前使用Windows XP計劃任務設置自動構建(與您現在所做的完全相同),但我們當前使用的是CruiseControl。在摘要中,這與你正在做的(定期運行構建)並沒有太大的不同,但它是increases your flexibility。在此處,CruiseControl最有價值的功能是檢測到已發生更改並僅運行構建,然後。我們會在現在提交的10分鐘內找出關於構建破損,單元測試失敗等的信息。

1

你應該看看HudsonCruise Control。兩者都易於設置,並將爲您提供更多的報告,控制和改進的可用性,爲您解決這類問題。您將花更少的時間來調查構建問題。

+0

haskell?真?你的意思是「哈德森」? – dfa 2009-04-16 16:12:05

1

hudson是另一個持續集成引擎,這是非常設置非常簡單:

Hudson offers the following features

  • 安裝方便:只要Java的罐子 的hudson.war,或在一個servlet 部署容器。沒有額外的安裝,沒有 數據庫。
  • 簡單的配置:哈德森可以是 完全從其友好的 網頁圖形用戶界面進行配置,具有廣泛的即時動作 錯誤檢查和內聯幫助。有 無需手動調整XML 了,但如果你想要做的 這樣,你可以做到這一點。
  • 更改設置支持:哈德森可以 生成從CVS /顛覆/水銀做成 構建更改的列表。這 是一個相當有效的 時尚也做,以減少 庫的負荷。
  • 永久鏈接:哈德森爲您提供了大部分 網頁 乾淨可讀的網址,包括一些固定鏈接鏈接 「最新版本」 /「最近一次成功 建」,使他們可以很容易地 從其他地方相連。
  • RSS /電子郵件/ IM集成:監視器 通過RSS或電子郵件獲得 實時失敗通知。
  • 後既成事實標籤:建立可 標記後不久版本是 完成的JUnit/TestNG的測試 報告:JUnit測試報告可以 表格,彙總,並與歷史信息顯示 ,如 當開始打破等。 歷史趨勢繪製成 圖表。
  • 分佈式構建:哈德森可以 分佈構建/測試負載到 多臺計算機。這可以讓您獲得 最大的空閒 工作站坐落在 開發人員的桌子下面。文件 指紋識別:Hudson可以跟蹤 哪個版本生成哪個罐子, 哪個版本使用哪個版本的罐子等等。這個 甚至適用於Hudson以外生產的 的罐子,並且對於追蹤依賴性的 項目是理想的。
  • 插件支持:哈德森可以通過第三方插件擴展 。您可以編寫插件,使您的 團隊使用的支持工具/流程Hudson 。