是否可以從Jenkins執行我的QUnit(javascript)單元測試?我的構建腳本是Apache Ant。 Jenkins會將它作爲單獨的構建步驟執行嗎?還是需要在我的Ant構建腳本的配置中添加一些內容?用Jenkins和Apache Ant運行QUnit測試?
回答
所以,我終於弄清楚了這一點。
這裏是我的端至端的實現:
安裝PhantomJS(http://phantomjs.org/) - 我在編譯/ tools文件夾
安裝此安裝PhantomJS QUnit亞軍腳本(https://gist.github.com/1588423) - 也安裝在我的build/tools文件夾中
將以下目標添加到我的build.xml文件中:
<target name="qunit" description="runs QUnit tests using PhantomJS">
<!-- QUnit Javascript Unit Tests -->
<echo message="Executing QUnit Javascript Unit Tests..."/>
<apply executable="path-to-your-phantomjs-bin-folder/phantomjs" >
<arg value="-path-to-your-build-tools/qunit-runner.js" />
<arg line="--qunit path-to-your-qunit-folder/qunit.js --tests path-to-your-test-folder --juni path-where-you-want-to-write-the-JUnit-style-output/qunit-results.xml" />
<fileset dir="${basedir}/${dir.test}" includes="tests.js" />
<srcfile/>
</apply>
</target>
在我的詹金斯項目配置,我現在調用Ant與 「縮小qunit」
我點詹金斯JUnit的風格輸出XML文件
- 檢查變更到我的回購
- 詹金斯將輪詢GitHub的更改
- 如果有任何變化,詹金斯將拉低
- 螞蟻將被調用,做構建,然後運行我的單元測試
- 測試結果將被髮表在類似JUnit的XML格式
- 詹金斯將分析這個輸出文件。如果沒有測試失敗,構建將被標記爲「成功」。如果任何測試失敗,生成將被標記爲「不穩定」
- 詹金斯將部署Web改變
- 詹金斯將清理工作區
而且,這裏的工作流程:
PS:目前,你必須手動刪除JUnit類型的XML輸出文件。我稍後會解決這個問題。
PS:下載定製的qunit。JS(https://gist.github.com/2488794)
爲什麼要定製QUnit?你不是現在卡在那個版本? – 2012-07-09 15:00:03
「--juni path-where-you-to-write-the-JUnit-style-output/qunit-results.xml」「 它應該是--junit:lol: – kidnan1991 2015-01-16 04:19:36
如果我正確理解您的設置,您可以運行Ant構建步驟,提供您的build.xml
,頂級目標和-D
參數(如果有)的位置。 This可能會有所幫助。
這是否有幫助? – 2012-05-07 09:25:40
Qunit本身現在維持phantomjs亞軍:
https://github.com/jquery/qunit/tree/master/addons/phantomjs
因此,假如你已經安裝phantomjs,從上面的鏈接抓取runner.js(或者使用bower /任何js包管理器獲取它),把它的地方,詹金斯可以找到它,然後使用:
phantomjs path/to/runner.js path/to/your/qunit_tests.html
它給最小的輸出是這樣的:
$ phantomjs superlists/static/tests/runner.js accounts/static/tests/tests.html
Took 29ms to run 11 tests. 11 passed, 0 failed.
或者這樣,如果它失敗:
$ phantomjs superlists/static/tests/runner.js accounts/static/tests/tests.html
Test failed: sinon tests of navigator.id.watch: watch sees current user
Failed assertion: check user, expected: current user, but was: baz
at file:///home/harry/superlists/superlists/static/tests/qunit.js:556
at file:///home/harry/superlists/accounts/static/tests/tests.html:69
at file:///home/harry/superlists/superlists/static/tests/qunit.js:203
at file:///home/harry/superlists/superlists/static/tests/qunit.js:361
at process (file:///home/superlists/superlists/static/tests/qunit.js:1453)
at file:///home/harry/superlists/superlists/static/tests/qunit.js:479
Took 29ms to run 11 tests. 10 passed, 1 failed.
沒有的JUnit的XML集成,但至少它返回一個錯誤代碼,如果它失敗了,所以它會失敗在詹金斯的構建...
$ echo $?
1
已更新的鏈接到runner.js https://github.com/jonkemp/qunit-phantomjs-runner – zbug 2015-04-20 14:43:54
- 1. Jenkins和Ant運行單元測試
- 2. QUnit不會運行測試
- 3. grunt和qunit - 運行單個測試
- 4. 在PhantomJS中從Ant運行異步QUnit測試
- 5. Jenkins(使用Ant)不執行PHPUnit測試
- 6. 使用Chutzpah運行Typescript qUnit測試
- 7. 通過調用Ant從Jenkins運行硒測試
- 8. Angularjs和qunit測試
- 9. 在Casper.js中運行QUnit測試
- 10. qUnit:運行測試的子集?
- 11. 讓QUnit按順序運行測試
- 12. QUnit僅運行第一次測試
- 13. 在Jenkins運行硒測試
- 14. jenkins selenium不運行測試
- 15. QUnit測試測試用例
- 16. 使用JUnit4運行Ant PDE測試
- 17. 使用ANT運行測試eclipse功能
- 18. 只執行JUnit測試的Ant任務不會運行測試
- 19. Jenkins + qUnit
- 20. 在Jenkins(Gradle)上運行Android單元測試和儀器測試
- 21. 測試與qunit和mockjax
- 22. QUnit XMLHttpRequest測試
- 23. 作爲Ant目標運行JUnit測試
- 24. 無法通過ANT運行測試
- 25. 在Jenkins中自動運行JUnit測試,無需使用maven或ant
- 26. 使用Robolectric和ANT進行測試
- 27. QUnit測試掛起
- 28. 使用QUnit進行Javascript測試
- 29. 嘗試運行qunit測試時獲取404
- 30. Knockout.js和使用QUNIT OBject錯誤測試
對於QUnit/Jenkins,您也可以使用Arquillian-QUnit擴展:http://stackoverflow.com/questions/7756644/jenkins-qunit/18263488#18263488 – 2013-08-15 23:30:34