我当前的单元测试正在使用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中使用我现有的单元测试?
答案 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。