mocha test i18n TypeError:无法读取undefined的属性'text50'

时间:2013-11-03 12:08:55

标签: node.js internationalization mocha

我正在使用mocha测试框架来测试我的应用程序和翻译我正在使用来自mashpie的i18n。
在我的validation.js文件中,我需要i18​​n模块并使用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

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

1 个答案:

答案 0 :(得分:0)

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

很可能是locale目录的位置。 检查i18n.configure中配置的locate目录的位置是否相对。

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