Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can't split CasperJS tests across multiple files

The docs weren't really useful - too brief and vague. As I understood from the docs, We just need to to run casperjs command on the the directory of tests and ensure each test ends with Tester.done(). Here are my two tests,

//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);
});

The thing is that test2.js file is never run. Maybe I am wrong somewhere.

like image 461
Shubham Avatar asked May 04 '13 06:05

Shubham


1 Answers

Several things here:

  • you must use the casperjs test subcommand
  • you may not create a new casper instance within a test script
  • you may not call .renderResults when using the casperjs test subcommand
  • tests scripts within a given directory will be executed in the alphabetical order of their filename

There's a useful gist which demonstrates how the command may/should be used.

like image 73
NiKo Avatar answered Sep 24 '22 01:09

NiKo