是否可以从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. 在PhantomJS中从Ant运行异步QUnit测试
- 3. 通过调用Ant从Jenkins运行硒测试
- 4. 在Casper.js中运行QUnit测试
- 5. qUnit:运行测试的子集?
- 6. 让QUnit按顺序运行测试
- 7. QUnit测试测试用例
- 8. jenkins selenium不运行测试
- 9. 在Jenkins运行硒测试
- 10. 使用JUnit4运行Ant PDE测试
- 11. 测试与qunit和mockjax
- 12. 在Jenkins(Gradle)上运行Android单元测试和仪器测试
- 13. 作为Ant目标运行JUnit测试
- 14. 使用QUnit进行Javascript测试
- 15. 无法通过ANT运行测试
- 16. 使用Robolectric和ANT进行测试
- 17. Knockout.js和使用QUNIT OBject错误测试
- 18. Qunit:测试泄漏
- 19. 使用Chutzpah对Typescript源文件运行Typescript QUnit测试
- 20. 如何在Jenkins中运行Selenium测试
- 21. 你如何从Jenkins运行NUnit测试?
- 22. Jenkins运行期间FoneMonkey测试崩溃
- 23. 通过jenkins运行Junit测试失败
- 24. 从Jenkins运行的慢UI测试
- 25. 与jenkins运行xml测试套件
- 26. 如何使用selenium和Java从Jenkins获取测试运行ID
- 27. 如何使用TestNG框架和Jenkins运行Selenium测试
- 28. ANT Jenkins单元测试 - 计数失败测试
- 29. Jenkins测试结果趋势图为空,但测试运行
- 30. 并行测试执行Jenkins
对于QUnit/Jenkins,您也可以使用Arquillian-QUnit扩展:http://stackoverflow.com/questions/7756644/jenkins-qunit/18263488#18263488 – 2013-08-15 23:30:34