使用 excel 个电子表格由 nodejs 驱动的数据
Data driven with nodejs using excel spreadsheets
我正在为我的工作场所做一些调查。计划是通过 nodejs 使用 javascript(因为我们有人知道这一点)。我们还将使用 selenium 和 visual studio 来编写代码。
我有一些基本测试运行一切正常。
我想知道的是如何在 java 脚本中进行数据驱动测试,从 excel 表中提取数据。我们可以每行 8-10 列,每个测试最多 30 行数据。任何指针将不胜感激。
我做了一些研究,但我发现的都是 C# 或正常 java。也不确定在这种情况下使用的最佳插件。
嗯,还有excel-阅读npm modules. Short of that, you could just save as CSV and there are a number of CSV-reading and writing modules。
我不确定您是否看过,但还有 mocha and chai,非常适合测试。
所以我使用的一般架构是编写一些 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
调用所做的那样。
我正在为我的工作场所做一些调查。计划是通过 nodejs 使用 javascript(因为我们有人知道这一点)。我们还将使用 selenium 和 visual studio 来编写代码。
我有一些基本测试运行一切正常。
我想知道的是如何在 java 脚本中进行数据驱动测试,从 excel 表中提取数据。我们可以每行 8-10 列,每个测试最多 30 行数据。任何指针将不胜感激。
我做了一些研究,但我发现的都是 C# 或正常 java。也不确定在这种情况下使用的最佳插件。
嗯,还有excel-阅读npm modules. Short of that, you could just save as CSV and there are a number of CSV-reading and writing modules。
我不确定您是否看过,但还有 mocha and chai,非常适合测试。
所以我使用的一般架构是编写一些 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
调用所做的那样。