我正在使用mocha测试框架来测试我的应用程序和翻译我正在使用来自mashpie的i18n。
在我的validation.js文件中,我需要i18n模块并使用i18n .__函数,如
console.log(i18n.__('text50'));
在我的测试文件validation.test.js中,我需要validation.js进行测试。然后我用mocha运行测试,结果我得到了。
Running "mochaTest:test" (mochaTest) task
>> Mocha exploded!
>> TypeError: Cannot read property 'text50' of undefined
>> at translate (/Volumes/Develop/townspeech/node_modules/i18n/i18n.js:355:23)
>> at Object.i18nTranslate [as __] (/Volumes/Develop/townspeech/node_modules/i18n/i18n.js:96:11)
>> at Object.<anonymous> (/Volumes/Develop/townspeech/server/libs/validation.js:24:18)
>> at Module._compile (module.js:456:26)
>> at Object.Module._extensions..js (module.js:474:10)
>> at Module.load (module.js:356:32)
>> at Function.Module._load (module.js:312:12)
>> at Module.require (module.js:364:17)
>> at require (module.js:380:17)
>> at Object.<anonymous> (/Volumes/Develop/townspeech/server/controllers/new_password.js:10:18)
Warning: Task "mochaTest:test" failed. Used --force, continuing.
但是当我尝试
时node validation.js
作为输出我有文字,而不是错误。为什么当我进行测试时,我得到错误并像往常一样执行?
答案 0 :(得分:0)
这是一个老问题,但为了其他人,这里有一个对我有用的解决方案:
很可能是locale目录的位置。 检查i18n.configure中配置的locate目录的位置是否相对。
在执行节点和执行mocha测试时,您从不同的位置运行,因此i18n无法找到语言环境文件夹。