大家好我是js和量角器的新手,我发现它无法创建和修改文件,所以我想问的问题是: 是否可以手动将测试用例逻辑失败写入文本文件,例如: 我知道代码不正确,但你会得到我所知道的jasmine-reporter和xml文件输出的想法,但它只是打印出控制台错误,我想要一个自定义谎言下面的那个
describe('File output test', function() {
it('should have a title', function() {
browser.ignoreSynchronization=true;
browser.get('https://www.google.com');
});
it('Tests output file',function(){
var searchText = $('#lst-ib');
searchText.sendKeys('Testt')
searchText.sendKeys(protractor.Key.ENTER);
browser.sleep(3000);
if(browser.getTitle() != 'Test')
{
var txtFile = "C:\Users\y\Desktop\test.txt";
var file = new File(txtFile);
var url = browser.getCurrentUrl();
file.open("w");
file.writeln("Error at " + url);
file.close();
}
});
});
conf文件非常基本:
exports.config = {
framework: 'jasmine',
seleniumAddress: 'http://localhost:4444/wd/hub',
specs: ['spec.js']
}
所以我只是想检查当前给定的标题,如果它与预期的标题不同,我想将url保存在输出文件中,所以当测试结束时,我可以检查后面确切做了什么我没有想要发生。我希望我不是胡说八道
答案 0 :(得分:0)
量角器在Node.js环境中运行。所以Node.js拥有的一切都可供您使用。例如"fs" module。因此,您可以每次手动保存文件,或者(作为更好的选择),编写custom Jasmine reporter。您的记者会在全局命名空间中公开一些变量或函数来注册自定义错误,并在测试执行后将它们写入文件。
答案 1 :(得分:0)
没关系,我发现我的问题的答案是我用来测试它的示例代码
var fs = require('fs-extra')
var file = 'C:/Users/y/Desktop/test/New folder/output.txt'
var counter = 1;
describe('File output test', function() {
it('should have a title', function() {
browser.ignoreSynchronization=true;
browser.get('https://www.facebook.com');
});
it('Tests output file',function(){
email = 'dame@hotmail.com';
pass = 'test123'
var enterMail = $('#email');
enterMail.sendKeys(email);
var enterPass = $('#pass');
enterPass.sendKeys(pass);
enterPass.sendKeys(protractor.Key.ENTER);
browser.sleep(3000);
if(browser.getTitle() != 'Facebook'){
fs.appendFile(file,counter +'. ' + 'Error at login using: ('+email +') as email and ('+pass+') as password.' + "\n" , function (err) {
console.log(err) // => null
})
counter+=1;
}
});
});
我找到了一个模块fs-extra,允许创建和编辑一些文件或文档,我设法在一个文件中创建和编写我的手动输出,这是fs-extra https://github.com/jprichardson/node-fs-extra#mkdirsdir-callback的链接,以防有人需要它欢呼