使用Karma从外部Web服务器运行QUnit测试

时间:2013-10-14 15:47:21

标签: testing qunit karma-runner

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

  1. 中打开我要测试的浏览器
  2. 浏览http://localhost:8080/app/tests/index.html
  3. 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想要从磁盘提供测试文件这一事实有关,但我不确定。此外,似乎只是从外部主机提供测试应该不是问题?任何人都可以对此有所了解吗?

1 个答案:

答案 0 :(得分:0)

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

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

另见这个问题

Running QUnit tests with Jenkins and Apache Ant?

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