Javascript 获取测试文件目录的jest process.cwd()
在我当前的代码中,我使用Javascript 获取测试文件目录的jest process.cwd(),javascript,testing,jestjs,Javascript,Testing,Jestjs,在我当前的代码中,我使用process.cwd()获取当前工作目录,然后加载一些文件(如配置文件) 下面我将展示我的代码的概念以及如何测试它 这是目录结构: ├── index.js └── test ├── index.test.js └── config.js index.js const readRootConfig = function() { const dir = process.cwd(); console.log(dir); // show the wo
process.cwd()
获取当前工作目录,然后加载一些文件(如配置文件)
下面我将展示我的代码的概念以及如何测试它
这是目录结构:
├── index.js
└── test
├── index.test.js
└── config.js
index.js
const readRootConfig = function() {
const dir = process.cwd();
console.log(dir); // show the working dir
const config = require(`${dir}/config.js`);
}
import readRootConfig '../index';
it('test config', () => {
readRootConfig();
})
const readRootConfig = function(dir) {
console.log(dir); // show the working dir
const config = require(`${dir}/config.js`);
}
然后我使用jest来测试这个文件
index.test.js
const readRootConfig = function() {
const dir = process.cwd();
console.log(dir); // show the working dir
const config = require(`${dir}/config.js`);
}
import readRootConfig '../index';
it('test config', () => {
readRootConfig();
})
const readRootConfig = function(dir) {
console.log(dir); // show the working dir
const config = require(`${dir}/config.js`);
}
运行测试后,dir的控制台是/
(实际输出是绝对路径,我在这个演示中只显示相对路径)
但是我希望dir的输出是/test
是否有任何配置使jest使用测试文件文件夹
作为进程.cwd()
文件夹
我认为解决方案之一是将passdir path
作为参数,如:
index.js
const readRootConfig = function() {
const dir = process.cwd();
console.log(dir); // show the working dir
const config = require(`${dir}/config.js`);
}
import readRootConfig '../index';
it('test config', () => {
readRootConfig();
})
const readRootConfig = function(dir) {
console.log(dir); // show the working dir
const config = require(`${dir}/config.js`);
}
但我不喜欢这个解决方案,因为这个方法是为了适应测试
有什么建议吗?谢谢。也许你想制作一个能知道需要什么文件的模块,你可以使用module.parent
。这是第一个需要这个模块的模块。然后可以使用path.dirname
获取文件的目录
所以index.js
应该是这样的
const path = require('path')
const readRootConfig = function() {
const dir = path.dirname(module.parent.filename)
console.log(dir); // show the working dir
const config = require(`${dir}/config.js`);
}