在Casper.js中运行QUnit测试

时间:2012-07-26 21:04:18

标签: qunit casperjs

我当前的单元测试正在使用QUnit,它们按照QUnit website中的说明执行。基本上我的所有测试都编译为tests.js,这包含在index.html中:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>QUnit Example</title>
  <link rel="stylesheet" href="/resources/qunit.css">
</head>
<body>
  <div id="qunit"></div>
  <script src="qunit.js"></script>
  <script src="tests.js"></script>
</body>
</html>

所以我的问题是,如何在Casper.js中使用我现有的单元测试?

2 个答案:

答案 0 :(得分:2)

首先注入QUnit,大概是你的网站测试,就像jQuery一样(在casper.start函数中执行此操作)。这些文件必须绝对位于本地计算机上才能工作。

casper.page.injectJs('/path/to/qunit.js');
casper.page.injectJs('/path/to/tests.js');

您需要使用evaluate function

casper.evaluate(function() {
    // this code is run in the context of your website
    doTests();
});

执行测试。

您可以编写一个函数来返回测试结果并将其写入命令行。或者,对于我们中的懒人,您可以使用

获取屏幕截图
casper.capture('testResults.png');

评估后。

我还没有对这种特殊方法进行过测试,但我最近一直在与CasperJS合作,并认为这是一条通向你想要实现的目标的道路。

答案 1 :(得分:1)

有几种方法可以整合https://github.com/ariya/phantomjs/wiki/Headless-Testing中列举的QUnit和CasperJS

在撰写本文时,它是内置支持,Chutzpah,JS Test Runner,QLive和QUnited。