1

我的应用程序是一个 Java webapp (*.war),它有一堆用 QUnit 编写的测试。它们不会自动运行。当我想运行测试时,我现在做的事情如下:

  1. 打开我要测试的浏览器
  2. 冲浪到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在我的应用程序目录中执行)并 surf to 时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 想要从磁盘提供测试文件这一事实有关,但我不确定。此外,似乎简单地从外部主机提供测试应该不是问题?任何人都可以对此有所了解吗?

4

1 回答 1

0

如果您使用 ant 来构建您的项目,那么您很幸运。有一个 ant 任务,它使用 phantom headless 浏览器来运行 qunit 测试。为我工作。

https://github.com/philmander/ant-jstestrunner

另请参阅此 SO 问题

使用 Jenkins 和 Apache Ant 运行 QUnit 测试?

但是,在我的情况下,我们只是将构建过程切换为使用 maven,而我还没有开始工作。写一个 maven ant runner 目标来做同样的事情应该是微不足道的。

于 2013-10-15T01:55:20.923 回答