I've scoured the internet looking for a description of the thing I'm trying to do but to no avail. I would like to get unit tests in place for a web frontent I'm building that run directly on the production code by loading it with PhantomJS from the localhost. I'd like to run a Grunt task that goes through my specs after loading the real site and interacting with the dom to test everything out. I'm ALMOST there, but I can't actually get the page to load.
If I add a host item to the jasmine options in my gruntfile like so:
options: {
specs: 'spec/*Spec.js',
helpers: 'spec/*Helper.js',
vendor: ['app/assets/javascripts/src/libs/jquery-1.9.1.min.js', 'app/assets/javascripts/src/libs/underscore.js'],
template: require('grunt-template-jasmine-requirejs'),
host: "http://localhost:3000"
}
I get a timeout error every time. Nobody's really addressed this issue in the Grunt context, so I'm not sure what the story is, and I have no asynchronous tests running. If I leave hosts out, it runs the tests successfully, but only on my raw javascript files through the local filesystem, not over the local network. How do I configure my templates to allow Jasmine tests to run over a different host?
UPDATE:
Actually, it looks like Grunt doesn't actually poll against the local server, it just hangs and times out.
you need to start a local server using grunt-contrib-connect
specify in your config:
grunt.initConfig({
connect: {
server: {
options: {
port: 3000
}
}
}
});
add to an alias task:
grunt.registerTask("default", ["connect", "your-jasmine-task"]);
and run it:
$ grunt default
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With