Javascript 量角器-在等级库2中读取等级库1中填充的CSV文件
我正在使用量角器来自动化一些测试 在规范1中,我执行了一些操作,并在CSV文件中收集了一些信息:Javascript 量角器-在等级库2中读取等级库1中填充的CSV文件,javascript,file,protractor,automated-tests,Javascript,File,Protractor,Automated Tests,我正在使用量角器来自动化一些测试 在规范1中,我执行了一些操作,并在CSV文件中收集了一些信息: describe("Spec 1", function () { for (let i of some_useful_array) { it("does some business", async function () { saveData(someData) }) } function saveData(some
describe("Spec 1", function () {
for (let i of some_useful_array) {
it("does some business", async function () {
saveData(someData)
})
}
function saveData(someData) {
fs.appendFile("./file.csv", "\n" + someData, (err) => {
if (err) {
console.log(err);
}
})
}
})
在规范2中,我想使用以下信息:
var myFile= fs.readFileSync('./file.csv');
const data = parse(myFile, {
columns: true,
skip_empty_lines: true
})
describe("Spec 2", function () {
for (let i of some_other_useful_array) {
it("does some other business", function () {
console.log(data) // logs an empty array ([]) when run in the same execution than spec 1
})
}
})
当我分别运行spec 1和spec 2时,它就像一个符咒,但当我在同一执行中运行它们时,它就不起作用了。我想我需要关闭一些东西,我已经尝试了一些东西(例如fs.close()
),但这些都不起作用
有什么想法吗
编辑:我尝试了一些方法:在规范1中将file.csv复制到file2.csv,并在规范2中使用file2.csv。它似乎工作得更好一些。虽然解决方法很糟糕,但在我找到更好的解决方案之前已经足够好了。是异步的,这意味着javascript不会等到它完成它的任务。基本上,spec 2是在csv完全创建之前运行的。当您运行真正的规范时,这可能不会是一个问题,至少需要几秒钟。但是为了安全起见,你最好去做同样的事情,但在这件事完成之前不要安排另一项任务
这里描述了解决此行为的另一种方法
这并不能解决我面临的问题,但它有助于我进行调查。谢谢