Kylee
Kylee

Reputation: 1675

Can't require Underscore with CasperJS

I'm using CasperJS to run automated frontend tests but have run in to an issue with using other npm modules in my tests. I'm aware of patchRequire however I believe that is only to be called outside of the test environment as the test runner patches require automatically. I did include it but the results were the same. It says it can't find the module. I have confirmed the underscore module is installed in node_modules in the projects root folder.

Code

'use strict'

_ = require 'underscore'

testConfig =
    testPageUrl: ''
    testSearchTerm: 'the'

config = _.extend testConfig, require 'common/config'

Code in Javascript

'use strict';

_ = require('underscore');

testConfig = {
  testPageUrl: '',
  testSearchTerm: 'the'
};

config = _.extend(testConfig, require('common/config'));

Error

CasperError: Can't find module underscore

Upvotes: 4

Views: 1896

Answers (1)

Kylee
Kylee

Reputation: 1675

So solution I eventually found was to create proxy modules that import the npm module and export it out to the casper script.

./proxies/underscore.js:

module.exports = require('underscore');

./tests/test.js

var _ = require('../proxies/underscore');

Upvotes: 6

Related Questions