【问题标题】:mocha test i18n TypeError: Cannot read property 'text50' of undefinedmocha test i18n TypeError:无法读取未定义的属性“text50”
【发布时间】:2013-11-03 12:08:55
【问题描述】:

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

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

【问题讨论】:

  • 在您的测试中启用 i18 日志记录:DEBUG=i18n:* mocha -g {name of test that fails}。如果日志不够有用,则创建一个小测试用例来重现问题并在此处发布完整的源代码和 i18n 日志。

标签: node.js internationalization mocha.js


【解决方案1】:

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

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

在执行 node 和执行 mocha 测试时,您从不同的位置运行,因此 i18n 无法找到 locale 文件夹。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    • 2020-01-24
    • 2022-06-10
    • 2019-07-19
    • 1970-01-01
    相关资源
    最近更新 更多