2

我正在使用 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

作为输出,我得到了文本,而不是错误。为什么当我进行测试时,我得到了错误并且没有像往常一样执行?

4

1 回答 1

0

这是一个老问题,但为了其他人,这里是对我有用的解决方案:

很可能它是语言环境目录的位置。检查在 i18n.configure 中配置的 locate 目录的位置是否是相对的。

在执行节点和执行 mocha 测试时,您从不同的位置运行,因此 i18n 无法找到语言环境文件夹。

于 2015-10-04T10:07:49.203 回答