2

我当前的单元测试正在使用QUnit,它们按照 QUnit网站上的描述执行。基本上我所有的测试都编译为 a 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 中使用我现有的单元测试?

4

2 回答 2

2

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

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

您需要使用评估功能

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

执行您的测试。

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

casper.capture('testResults.png');

评估后。

我还没有测试过这种特殊的方法,但我最近一直在使用 CasperJS,并相信它是实现您想要完成的目标的合理途径。

于 2012-10-18T00:36:55.673 回答
1

在https://github.com/ariya/phantomjs/wiki/Headless-Testing列举了几种集成 QUnit 和 CasperJS 的方法

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

于 2013-07-13T04:34:53.807 回答