使用excel电子表格使用nodejs驱动的数据

时间:2017-07-24 20:05:07

标签: javascript node.js excel data-driven-tests

我正在为我的工作场所做一些研究。计划是通过nodejs使用javascript(因为我们有人知道这一点)。我们还将使用selenium和visual studio来编写代码。

我有一些基本的测试,一切正常。

我想知道的是如何在java脚本中进行数据驱动测试,从而将数据从excel表中拉出来。对于每个测试,我们每行可以有8-10列,最多可以有30行数据。任何指针都将非常感激。

我做了一些研究,但我发现的任何东西都是c#或普通的java。不确定在这种情况下使用的最佳插件。

1 个答案:

答案 0 :(得分:0)

嗯,有阅读npm modules。除此之外,你可以保存为CSV,还有一些CSV-reading and writing modules

我不确定你是否已经看过它,但还有mochachai,它们非常适合测试。

因此,我使用的一般架构是编写一些mocha测试,这些测试从excel或CSV文件中读取数据,然后使用该数据作为输入运行测试。像这样:

var fs = require('fs'); 
var parse = require('csv-parse');
var expect = require('chai').expect;

var csvData=[];

describe('When using some test data', () => {
  before((done) => {
     s.createReadStream(req.file.path)
      .pipe(parse({delimiter: ':'}))
      .on('data', function(csvrow) {
        csvData.push(csvrow);        
      })
      .on('end',function() {
        done();
      });
  });
  it ('should be able to pass a test with all data', () => {
    csvData.forEach((datum) => {
       // not sure what you're testing for, but check for each to pass here.
       expect(datum).to.not.be.a('null');
    });
  });
});

请注意,我没有对上述情况进行测试,但是您在如何处理事情方面处于领先地位。

如果您正在测试的任何方法都需要回调,您可以使用async / await语义,或者使用it('test description', (done) => {});回调语法,就像我对before调用一样。