无法跨多个文件拆分CasperJS测试

Shu*_*ham 6 javascript phantomjs casperjs

文档并没有真正有用 - 太简短和模糊.正如我从文档中所理解的那样,我们只需要在测试目录上运行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);
});
Run Code Online (Sandbox Code Playgroud)

问题是test2.js文件永远不会运行.也许我错了.

NiK*_*iKo 16

这里有几件事:

  • 你必须使用casperjs test子命令
  • 您可能无法在测试脚本中创建新的casper实例
  • 使用子命令时,您不能调用.renderResultscasperjs test
  • 测试给定目录中的脚本将按其文件名的字母顺序执行

有一个有用的要点,演示了如何使用/应该使用命令.

  • 相应地命名您的文件:01_login.js,02_otherpage.js (5认同)