量角器 - 使用“期望...”结果创建一个txt文件作为报告

时间:2018-04-17 14:21:18

标签: protractor

我正在尝试为我的场景创建报告,我想执行一些验证并在字符串中添加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);
                }
                });
        }
      };
});

但是当我检查我的文件时,我只会按照我想要的方式写出第一行而没有其他内容,请你告诉我我做错了什么?

*验证在我的文件中用作数据库

的每个字符串的屏幕上都能正常工作

**我是量角器的新手

非常感谢!!

1 个答案:

答案 0 :(得分:0)

writeFile documentation

  

异步将数据写入文件,如果文件已经替换,则替换该文件   存在

您每次都会覆盖该文件,这就是为什么它只有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。他们的方法包含您想要的内容(状态通过/失败,实际值与期望值等),并且使用量角器设置相当容易