我正在尝试为我的场景创建报告,我想执行一些验证并在字符串中添加retults,然后将此字符串写入TXT文件中(对于每个验证,我想添加结果和再次执行直到最后一项),如下所示:
it ("Perform the loop to search for different strings", function()
{
browser.waitForAngularEnabled(false);
browser.get("http://WebSite.es");
//strings[] contains 57 strings inside the json file
for (var i = 0; i == jsonfile.strings.length ; ++i)
{
var valuetoInput = json.Strings[i];
var writeInFile;
browser.wait;
httpGet("http://website.es/search/offers/list/"+valuetoInput+"?page=1&pages=3&limit=20").then(function(result) {
writeInFile = writeInFile + "Validation for String: "+ json.Strings[i] + " Results is: " + expect(result.statusCode).toBe(200) + "\n";
});
if (i == jsonfile.strings.length)
{
console.log("Executions finished");
var fs = require('fs');
var outputFilename = "Output.txt";
fs.writeFile(outputFilename, "Validation of Get requests with each string:\n " + writeInFile, function(err) {
if(err)
{
console.log(err);
}
else {
console.log("File saved to " + outputFilename);
}
});
}
};
});
但是当我检查我的文件时,我只会按照我想要的方式写出第一行而没有其他内容,请你告诉我我做错了什么?
*验证在我的文件中用作数据库
的每个字符串的屏幕上都能正常工作**我是量角器的新手
非常感谢!!
答案 0 :(得分:0)
异步将数据写入文件,如果文件已经替换,则替换该文件 存在
您每次都会覆盖该文件,这就是为什么它只有1行。
最简单的方法可能(我认为)是appendFile。它写入文件而不覆盖现有数据,如果文件首先不存在,也会创建该文件。
您还可以重新读取该日志文件,将该数据存储在变量中,然后使用其中包含的旧AND数据重新写入该文件。您还可以创建writeStream等
有很多方法可以解决这个问题以及其他许多答案 在SO上专门针对那些可以提供更多信息的功能。
Node.js Write a line into a .txt file
Node.js read and write file lines
最后注意,如果您使用Jasmine,您还可以创建custom jasmine reporter。他们的方法包含您想要的内容(状态通过/失败,实际值与期望值等),并且使用量角器设置相当容易