2012-08-09 5 views
10

Me gustaría usar Phantomjs y Jasmine para pruebas unitarias de javascript. El sitio web de Phantomjs recomienda que use una cosa separada para manejar esto, específicamente, PhantomJasmine. Descargué PhantomJasmine y ejecuté el ejemplo. Todo salió a la perfección. Luego agregué la línea var system = require('system'); a la parte superior de example_spec.js. El Phantomjs ahora arroja un error cuando trato de ejecutar el ejemplo. Obtengo "ReferenceError: Can not find variable: require". Por lo tanto, quiero hacer cosas como lanzar el navegador, pero parece que no puedo combinar la sintaxis de jazmín Y phantomjs. Solo puedo ejecutar jasmin puro usando Phantomjs. ¿Cómo puedo usar ambos en el mismo archivo? como:PhantomJS "No se puede encontrar la variable: requiere" al utilizar PhantomJasmine

console.log('Loading a web page'); 
var page = new WebPage(); 
var url = "http://www.phantomjs.org/"; 
page.open(url, function (status) { 
    //Page is loaded! 
    describe("A suite", function() { 
     it("contains spec with an expectation", function() { 
     expect(true).toBe(true); 
     }); 
    }); 
    phantom.exit(); 
}); 

Respuesta

4

No es exactamente cómo deberías usarlo. El código para controlar phantomjs no debe enturbiarse con especificaciones de jazmín y viceversa.

Debe separar sus especificaciones en archivos .js y crear una configuración estándar de jazmín con un corredor de especificaciones HTML que cargue los archivos .js de especificación y abra ese archivo HTML en phantomjs.

Otra solución es usar gruñido con phantomjs y jazmín para ejecutar automáticamente las especificaciones de jazmín.

https://github.com/cowboy/grunt
https://github.com/creynders/grunt-jasmine-task

+0

tengo mis archivos separados. Me sale el mismo error. El contenido interno de mi etiqueta principal en el archivo html es: donde execPage.js contiene código PhantomJS puros, y jaztest1 contiene código de jazmín puro. También miré a Grunt. Es solo otra cosa ejecutar a Jasmine con fantasmas js. Necesito saber cómo ejecutar las secuencias de comandos de Jasmine Y Phantomjs. es decir: navegue a la página, ejecute jazmín. – Hohohodown

+0

Creo que estoy mejorando el problema. Aquí está el escenario: tengo tests.js que son algunas pruebas de jazmín. Quiero navegar a google.com y verificar que la barra de búsqueda aparezca. google.com no incluye ningún jazmín. ¿Cómo puedo hacer esto? – Hohohodown

+0

Llame al script jazmín en la página html, no a través de PhantomJS. Básicamente lo configura EXACTAMENTE como lo haría cuando desea ejecutar las pruebas de jazmín manualmente y luego pasar la URL de esa página HTML a PhantomJS para ejecutarlo en la línea de comandos. – Creynders

Cuestiones relacionadas