文档并没有真正有用 – 太简短和模糊.据我所知,从
docs开始,我们只需要在测试目录上运行casperjs命令,并确保每个测试都以Tester.done()结束.这是我的两个测试,
//test1.js var casper = require('casper').create(); var urlPrefix = "http://localhost/NavHawk2/"; casper.start(urlPrefix,function() { this.test.assertSelectorHasText('title','Login','Title Ok! Login Page Expected'); this.test.assertExists('form[action$="/login"]','Login Form is found'); this.fill('form[action$="/login"]',{ ..... },true); }); casper.run(function() { this.test.done(2); }); //test2.js var blinkingCircleImg = "7.gif" casper.on('page.error',function(){ console.log("SOme Javascript error persists!"); }); casper.then(function(){ this.test.assertSelectorHasText('title','Map','Login Ok! Map Page Expected'); this.test.assertExists('img[src$="' + blinkingCircleImg + '"]','Blinking Circle being shown!'); this.test.assetNotVisible('#sidebar_content_geofences','Geofencing sidebar not being shown!'); }); casper.run(function() { this.test.renderResults(true); this.test.done(3); });
问题是test2.js文件永远不会运行.也许我错了.
解决方法
这里有几件事:
>您必须使用casperjs test子命令
>您可能无法在测试脚本中创建新的casper实例
>使用casperjs test子命令时,您可能无法调用.renderResults
>测试给定目录中的脚本将按其文件名的字母顺序执行
有一个useful gist,它演示了如何/应该使用命令.