无法使用 mocha 解析文件
Cannot parse file with mocha
为什么在 mocha 中我的解析器 returns 出错,但在 vanilla JS 中却运行良好?这是我保存在单独文件中的解析器,它应该解析 CSV 文件并从中提取值。
parser.js:
const fetch = require("node-fetch");
module.exports = async function(num) {
const response = await fetch('../date.csv');
const data = await response.text();
let rows = data.split('\n');
let res = rows[0].split(',');
return res[num];
}
date.csv 文件:
1,?start=2013-09-01&end=2013-09-05,SomeInfo,false
2,?start=2014-09-01&end=2014-09-05,SomeInfo,false
摩卡测试:
let file = require('../utils/parser');
let param = file(1);
describe('Account', () => {
it('Print', () => {
console.log(param);
});
});
日志:
Account
Promise {
<rejected> TypeError: Only absolute URLs are supported
at getNodeRequestOptions (node_modules/node-fetch/lib/index.js:1305:9)
您应该为文件提供绝对 url。
例如,在开始测试之前,设置一些环境变量,使其指向服务器的根 url:
package.json
"scripts": {
...
"test": "BASE_URL='http://127.0.0.1:8080' mocha"
...
}
然后在代码中做这样的事情:
parser.js
const fetch = require("node-fetch");
module.exports = async function(num) {
const absPath = process.env.BASE_URL + '../date.csv'
const response = await fetch(absPath);
const data = await response.text();
let rows = data.split('\n');
let res = rows[0].split(',');
return res[num];
}
或使用节点核心包“url”中的url.pathToFileURL(在节点版本 v10.12.0 中添加)
为什么在 mocha 中我的解析器 returns 出错,但在 vanilla JS 中却运行良好?这是我保存在单独文件中的解析器,它应该解析 CSV 文件并从中提取值。
parser.js:
const fetch = require("node-fetch");
module.exports = async function(num) {
const response = await fetch('../date.csv');
const data = await response.text();
let rows = data.split('\n');
let res = rows[0].split(',');
return res[num];
}
date.csv 文件:
1,?start=2013-09-01&end=2013-09-05,SomeInfo,false
2,?start=2014-09-01&end=2014-09-05,SomeInfo,false
摩卡测试:
let file = require('../utils/parser');
let param = file(1);
describe('Account', () => {
it('Print', () => {
console.log(param);
});
});
日志:
Account
Promise {
<rejected> TypeError: Only absolute URLs are supported
at getNodeRequestOptions (node_modules/node-fetch/lib/index.js:1305:9)
您应该为文件提供绝对 url。
例如,在开始测试之前,设置一些环境变量,使其指向服务器的根 url:
package.json
"scripts": {
...
"test": "BASE_URL='http://127.0.0.1:8080' mocha"
...
}
然后在代码中做这样的事情:
parser.js
const fetch = require("node-fetch");
module.exports = async function(num) {
const absPath = process.env.BASE_URL + '../date.csv'
const response = await fetch(absPath);
const data = await response.text();
let rows = data.split('\n');
let res = rows[0].split(',');
return res[num];
}
或使用节点核心包“url”中的url.pathToFileURL(在节点版本 v10.12.0 中添加)