2016-10-10 1 views
1

Donc, je suis nouveau à protractor et essayer de tester en utilisant des objets page pour rendre le code plus gérable. Avoir quelques problèmes avec ce côté-ci.Erreur: Impossible de trouver le module 'dans Protractor

Ci-dessous est mon principal fichier spec appelé 'example_spec.js de

describe('angularjs homepage', function() { 

    var home_page = require('../home_page.js'); 

    it('should greet the named user', function() { 
    home_page.enterFieldValue('Jack Sparrow'); 
    var getHomePageText = home_page.getDyanmaicText(); 
    expect(getHomePageText).toBe('Hello Steve!'); 
    }); 
}); 

Le fichier suivant est l'objet page appelée «home_page.js de

var home_page = function(){ 

    //Send in a value. 
    this.enterFieldValue = function(value){ 
     element(by.model('youName')).sendKeys(value); 
    }; 

    this.getDyanmaicText = function(){ 
     return element(by.binding('yourName')).getText(); 

    }; 

}; 

module.exports = new home_page(); 

La question est lors de l'exécution de ce test Je reçois l'erreur ci-dessous. Même en essayant différents chemins pour le dossier je continue à obtenir l'erreur. Toute aide serait appréciée.

Failures: 
1) angularjs homepage encountered a declaration exception 
    Message: 
    Error: Cannot find module '../home_page.js' 
    Stack: 
    Error: Cannot find module '../home_page.js' 
     at Function.Module._resolveFilename (module.js:455:15) 
     at Function.Module._load (module.js:403:25) 
     at Module.require (module.js:483:17) 
     at require (internal/module.js:20:19) 
     at Suite.<anonymous> (/Users/testuser/dev/example_spec.js:3:19) 
     at Object.<anonymous> (/Users/testuser/dev/example_spec.js:1:1) 
     at Module._compile (module.js:556:32) 

Répondre

4

pas la réponse directe à la question, mais l'approche générale pour résoudre le problème « exiger » dans l'importation d'objets tout en Protractor page ou fonctions d'assistance.

Ce que nous avons fait était de introduce 2 global helper functions - un pour les objets page et l'autre pour les assistants. Mettez cela en onPrepare() dans votre config:

// helper require function to import page objects 
global.requirePO = function (relativePath) { 
    return require(__dirname + '/../po/' + relativePath + '.po'); 
}; 

// helper require function to import helpers 
global.requireHelper = function (relativePath) { 
    return require(__dirname + '/../helpers/' + relativePath + '.js'); 
}; 

Ajustez les chemins en conséquence - __dirname est l'endroit où votre configuration réside dans les fonctions fournies travailleraient pour la structure suivante:.

- e2e 
    - config 
    protractor.conf.js 
    - po 
    home_page.js 
    - helpers 
    helpers.js 
    - specs 
    example_spec.js 

Ensuite, vous pourrait simplement avoir:

var home_page = requirePO('home_page'); 

dans votre fichier de spécifications.

+0

Excellent. Cela fonctionne maintenant, passé toute la journée à ce sujet. – cmplfore