作者:风桥残岸_476 | 来源:互联网 | 2023-09-11 14:08
我正在尝试用mocha / Chai测试我的节点API。我创建了一个“测试”文件夹,其中包含带有此代码的File.js,同一测试文件夹中包含一个名为testFile的文件夹,其中有一个图像“ shadad.jpeg”。 test.js文件包含以下代码
describe("/POST upload",() => {
it("it should POST a single file upload",dOne=> {
chai
.request(server)
.post("/upload")
.field("Content-Type","multipart/form-data")
.attach(
"file",fs.readFileSync("./testFiles/shadab.jpeg"),"shadab.jpeg"
)
.end((err,res) => {
res.should.have.status(200);
res.body.should.be.a("object");
res.body.should.have.property("success").eql(true);
done();
});
});
});
但是当我执行命令npm test时,出现了错误
Error: ENOENT: no such file or directory,open '../test/testFiles/shadab.jpeg'
使用PostMan,我正在测试我的api,并从表单数据密钥作为“文件”发送,而值作为文件“ shadab.jpeg”发送。得到这个回应。
{
"success": true,"data": "Added Successfully"
}
我在这里做错了什么?请帮忙。
我发现了https://github.com/visionmedia/supertest/issues/259这个问题。
This comment解决了我的问题。请查看给定的github链接以获取更多详细信息。
通过使用像fs.readFileSync(`${__dirname}/testFiles/shadab.jpeg`)
这样的文件的完整路径,它也可以如Pimento Web在注释中提到的那样工作。
相对文件路径在测试文件夹中表现异常。
我已经使用过fs.readFileSync("test/testFiles/shadab.jpeg")
,它现在对我有用。正如我在上面的问题中已经提到的,test
文件夹包含testFiles
文件夹,而shadab.jpeg
在{{1 }}文件夹。