Javascript 在量角器测试用例中包含库
然而,我想在量角器测试用例中包括一个模块/库,只要我添加了行Javascript 在量角器测试用例中包含库,javascript,angularjs,protractor,Javascript,Angularjs,Protractor,然而,我想在量角器测试用例中包括一个模块/库,只要我添加了行 var lib = require('./loginactions.js'); 对量角器和相关对象的所有引用都将丢失。换句话说,如果我没有require行,那么会找到'pregrator'和'browser'变量,测试运行正常(使用文件中的函数),但是添加该行之后,就再也找不到变量了 下面是一个最小的测试用例: var lib = require('./loginactions.js'); //problematic line
var lib = require('./loginactions.js');
对量角器和相关对象的所有引用都将丢失。换句话说,如果我没有require行,那么会找到'pregrator'和'browser'变量,测试运行正常(使用文件中的函数),但是添加该行之后,就再也找不到变量了
下面是一个最小的测试用例:
var lib = require('./loginactions.js'); //problematic line
describe('Login / Logout to Application',function(){
var ptor;
beforeEach(function(){
ptor = protractor.getInstance(); //protractor reference lost
browser.get('http://localhost:80'); //browser reference lost
});
it('should login and then logout successfully', function(){
//Do things here
lib.login(user, pass, ptor);
});
});
我以这种方式导出函数:
module.exports.Login = Login;
module.exports.Logout = Logout;
//Params: ptor - protractor instance
function Login(user, pass, ptor)
{
//stuff
}
function Logout(ptor)
{
//stuff
}
我还想知道,这是否是将自己的库包含到项目中的正确方法。所以我的问题是,如何正确地将库包含到量角器测试用例中?回答我自己的问题,使用量角器作为库方法工作,这样就恢复了对量角器的引用。因此,添加这两项需要解决我的问题:
var protractor = require('/path/to/protractor');
require('/path/to/protractor/jasminewd');
因此,我的测试看起来类似于中的更新代码
问题
但是,我不能完全确定全局浏览器对象。根据,它是WebDriver对象的包装器,但量角器实例也是。所以我决定用“ptor”替换所有的“browser”变量,到目前为止没有任何抱怨。这可能会适得其反,但正如我所说的,我不完全确定在正常运行量角器而不是作为库运行时,与全局量角器对象一起创建的全局浏览器对象是否与您的测试文件位于同一目录中。,它在同一个目录中。是否应该省略扩展名
.js
:var lib=require('./loginactions')代码>?如果没有,它应该可以工作。我确实尝试过省略.js扩展,并且需要很好的工作。问题是,只要我需要一个外部模块/库,对量角器/浏览器(iirc这是量角器库的一部分?)的引用就会丢失,因此我无法使用量角器执行任何操作。