我的应用程序是一个Java webapp(* .war),它有一堆用QUnit编写的测试。它们不会自动运行。我想要运行测试时现在做的是:
http://localhost:8080/app/tests/index.html
此tests/index.html
文件包含运行测试所需的所有内容(例如AngularJS,QUnit和我的测试)。
现在,我想做的是以更自动化的方式运行我的测试。我尝试过使用Karma,将其设置为这样(karma.conf.js
):
module.exports = function(config) {
config.set({
basePath: '',
frameworks: ['qunit'],
proxies: {
'/': 'http://localhost:8080/app/tests/index.html'
},
files: [],
exclude: [],
reporters: ['junit'],
port: 9876,
colors: true,
logLevel: config.LOG_DEBUG,
autoWatch: true,
browsers: [],
captureTimeout: 60000,
singleRun: true
});
};
然而,当我启动Karma(通过在我的应用程序目录中执行karma start
)并浏览http://localhost:9876/
时,它似乎不起作用。 test-results.xml
中的输出如下:
<?xml version="1.0"?>
<testsuites>
<testsuite name="Chrome 30.0.1599 (Mac OS X 10.8.5)" package="" timestamp="2013-10-14T15:30:01" id="0" hostname="dhcp-255-11" tests="0" errors="1" failures="0" time="0">
<properties>
<property name="browser.fullName" value="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.69 Safari/537.36"/>
</properties>
<system-out><![CDATA[
]]></system-out>
<system-err/>
</testsuite>
</testsuites>
我怀疑这与Karma想要从磁盘提供测试文件这一事实有关,但我不确定。此外,似乎只是从外部主机提供测试应该不是问题?任何人都可以对此有所了解吗?
答案 0 :(得分:0)
如果您使用ant来构建项目,那么您很幸运。有一个ant任务使用幻像无头浏览器来运行qunit测试。为我工作。
https://github.com/philmander/ant-jstestrunner
另见这个问题
Running QUnit tests with Jenkins and Apache Ant?
但是在我的情况下,我们只是将构建过程切换为使用maven,但我还没有完成它。为了做同样的事情,写一个maven ant runner目标应该是微不足道的。