我正在尝试使用本地.env文件在带有笑话的React项目上运行快照测试,但是我不知道如何获得笑话来识别它。
到目前为止,我已经尝试过:
dotenv.config({path: 'path/to/.env'});
是否支持此功能?任何帮助将不胜感激
答案 0 :(得分:1)
我目前正在做的事情是这样的:
beforeEach(()=> {
process.env = Object.assign(process.env, { REACT_APP_ENV_VAR: 'some env variable' });
});
通过这种方式,我可以选择在每个测试中使用什么变量,别忘了清理env
上的afterEach
答案 1 :(得分:0)
将 Jest 测试所需的环境变量放在 .env.test 中。
见jest doc:
Jest sets the following environment variables:
NODE_ENV
Set to 'test' if it's not already set to something else.
因此 .env.test 中的环境变量会被 jest 自动设置。
答案 2 :(得分:0)
在 Linux 上,您可以这样做:
typedef union{
float number;
uint8_t bytes[4];
} FLOATUNION_t;
FLOATUNION_t myValue;
float getFloat(){
int cont = 0;
FLOATUNION_t f;
while (cont < 4 ){
f.bytes[cont] = Serial.read() ;
cont = cont +1;
}
return f.number;
}
"scripts": {
...
"test": "export $(xargs < .env) && jest",
...
}
部分从 export $(xargs < .env)
文件加载环境值。
答案 3 :(得分:-1)
.env
配置是针对您的应用程序而非测试的。
例如,如果您想基于env
为应用程序中的变量设置不同的值,则将是这样
development.env
GREET="Hello Dev!"
test.env
GREET="Hello Master!"
production.env
GREET="Hello User!"
现在您在应用程序中的代码将是
const sendGreeting = () => {
return process.env.GREET || 'default greet';
};
您应该使用将NODE_ENV
文件中的test
设置为package.json
的脚本来运行测试
"scripts": {
...
"test": "NODE_ENV=test jest"
...
}
所以当您开玩笑地测试此方法时,您将拥有正确的测试环境值。
describe('Test Env', () => {
it('should return test greeting in test env', () => {
expect(sendGreetings()).toEqual("Hello Master!");
});
});