2017-05-24 90 views
1

我是Jenkins的新手,並且正在嘗試爲我的iOS應用程序設置CI。我在項目中創建了一個單元測試目標,並配置了Jenkins以正確構建和運行我的單元測試,但在嘗試實際輸出其餘結果xml文件時構建失敗,我不確定我在做什麼錯誤。我借了很多想法從這些來源提出:Xcode 8 Jenkins JUnit錯誤:測試報告沒有找到報告文件

https://www.raywenderlich.com/22816/beginning-automated-testing-with-xcode-part-22 http://www.sailmaker.co.uk/blog/2013/04/02/advanced-jenkins-for-ios-and-mac/

我的實際控制檯日誌生成後看起來是這樣的:

=== BUILD TARGET run_to_it OF PROJECT run_to_it WITH CONFIGURATION Debug === 

Check dependencies 

=== BUILD TARGET run_to_itTests OF PROJECT run_to_it WITH CONFIGURATION Debug === 

Check dependencies 

** BUILD SUCCEEDED ** 

Recording test results 
ERROR: Step ‘Publish JUnit test result report’ failed: No test report files were found. Configuration error? 
Finished: FAILURE 

我的構建步驟執行shell是這樣的:

export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer/ 

security unlock-keychain -p ${KEYCHAIN_PASSWORD} ${KEYCHAIN_PATH} 
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k ${KEYCHAIN_PASSWORD} ${KEYCHAIN_PATH} 
xcrun xcodebuild clean build CODE_SIGN_IDENTITY="${CODE_SIGNING_IDENTITY}" PROVISIONING_PROFILE=${PROVISIONING_PROFILE} OTHER_CODE_SIGN_FLAGS="--keychain ${KEYCHAIN_PATH}" 


xcodebuild -target run_to_itTests -configuration Debug -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO TEST_AFTER_BUILD=YES GCC_TREAT_WARNINGS_AS_ERRORS=NO WANT_IOS_SIM=YES OBJROOT="${WORKSPACE}"/tmp/objs build | /usr/local/bin/ocunit2junit 

我的構建測試報告的步驟是這樣的: enter image description here

我保證我已經安裝了必要的插件以及在/usr/local/bin目錄安裝ocunit2junit寶石以及具有安裝在詹金斯的JUnit插件。

enter image description hereenter image description here

我不知道是否正在生成任何XML文件在所有的,因爲我已經通過在詹金斯工作區的每個文件夾看了看,見沒有這樣的XML文件的任何地方100%。我不確定是否需要在任何構建步驟中明確指定要創建的文件,還是默認處理該文件。我在網上看到了很多,我一直無法確定地解決問題。

對於上下文:我的Jenkins服務器此刻正在我的Mac上運行。我有一個Jenkins用戶,在我的本地機器上有一個工作區。我也在運行macOS Sierra,我不確定測試報告文件夾是否存在任何權限問題。我看到該文件夾​​正在創建,但沒有任何XML文件放在它的內部。

如果我刪除Publish JUnit test report result,那麼我的項目將成功構建。

回答

0

測試報告XML字段(發佈JUnit測試結果報告選項)上的值似乎是正確的。如果構建之後,此目錄中沒有任何xml文件,則問題位於您的測試中(並生成xml junit結果文件),而不是發佈JUnit測試結果報告配置。

您可以確定您的單元測試是否使用Junit格式在xml文件中生成結果?

+0

是的,我懷疑也是這個問題,我找不到任何這樣的XML文件。我在jenkins目錄中梳理了項目的工作空間,發現沒有生成XML文件。你能否進一步闡述你的問題在測試中是什麼意思? – zic10

+0

如果您想發佈Junit測試結果報告,您的單元測試必須在junit格式的xml文件中生成結果。是這樣嗎?你如何做你的單元測試?你的單元測試的輸出是什麼? –

+0

我的單元測試是一個獨立的測試目標,它在代碼中運行一個單元測試。除此之外,我沒有其他配置。 – zic10