2017-02-08 5 views
0

Я написал файл с рядом функций, которые я хочу использовать во множестве тестов E2E. Я пытался проверить это и нашел некоторые решения, но никто не работает для меня.Чтение функций из одного файла в другой в транспортирторе JS

Вот как обстоят дела.

В моем TestingFunc.js файл я создал следующее:

var TestingFunc = function() { 

this.login = function(Url) { 
      browser.ignoreSynchronization = true; 
      browser.get(Url); 


      browser.wait(EC.elementToBeClickable(element(by.eeHook('login',null,null))), 300000); 
      element(by.eeHook('login', null, null)).click();  
      element(by.eeHook('authenticationEmailField',null,null)).sendKeys(logins.International); 

      element(by.name('password')).sendKeys(logins.password); 
      element(by.eeHook('authenticationLoginButton',null,null)).click(); 

      browser.wait(EC.elementToBeClickable(paymentFlow), 100000); 

      paymentFlow.click(); 
      browser.wait(EC.elementToBeClickable(depositAmount), 7000); 

     }; 
}; 

и я пытаюсь прочитать в следующем:

var url = 'http://master.mrgreen.avengers.zone/en-US/casino'; 
var TestingFunc = require("C:/Users/davbor.3DB/MrGreen Google Drive/LetsTest/TestingFunc.js"); 

describe("The security application", function() { 


var test = new TestingFunc(); 

it("will login to the page", function() { 
    test.login(url); 
}); 

});

Тем не менее каждый раз, когда я запускаю его я получаю сообщение об ошибке:

Failures: 
1) The security application encountered a declaration exception 
    Message: 
    TypeError: TestingFunc is not a constructor 
    Stack: 
    TypeError: TestingFunc is not a constructor 
     at Suite.<anonymous> (C:\Users\davbor.3DB\MrGreen Google Drive\LetsTest\Testing.js:6:17) 

Не уверен, что я не хватает, как я даже спросил у разработчика дома, чтобы посмотреть на него, но безуспешно.

+1

Вы экспортировали свой 'TestingFunc'? 'module.exports = TestingFunc' – casraf

+0

да, м он написал как экспорт, а не экспорт, и теперь он выглядит хорошо работать, спасибо за вашу помощь :) –

ответ

3

var TestingFunc = require("C:/Users/davbor.3DB/MrGreen Google Drive/LetsTest/TestingFunc.js");

1) Вы не должны использовать полный путь. Используйте относительный путь к этому файлу.

В вашем Testing.js требует должен выглядеть следующим образом:

var TestingFunc = require("./TestingFunc.js"); 

2) Вы должны 'экспорт' ваша функция:

var TestingFunc = function() { 

this.login = function(Url) { 
     browser.ignoreSynchronization = true; 
     browser.get(Url); 


     browser.wait(EC.elementToBeClickable(element(by.eeHook('login',null,null))), 300000); 
     element(by.eeHook('login', null, null)).click();  
     element(by.eeHook('authenticationEmailField',null,null)).sendKeys(logins.International); 

     element(by.name('password')).sendKeys(logins.password); 
     element(by.eeHook('authenticationLoginButton',null,null)).click(); 

     browser.wait(EC.elementToBeClickable(paymentFlow), 100000); 

     paymentFlow.click(); 
     browser.wait(EC.elementToBeClickable(depositAmount), 7000); 

    }; 
}; 
module.exports = TestingFunc; 

Проверить больше о nodejs модулях здесь: https://nodejs.org/api/modules.html

+0

К сожалению, даже при наличии экспорта я все еще сталкиваюсь с той же ошибкой , –

+0

исправление работало! Я заметил, что при чтении предложенного api экспорт не экспортируется. Большое спасибо за вашу помощь! Ты действительно сделал мой день! :) –