junit 测试期间无法加载 ResourceBundle
我正在尝试编写一些 Junit 测试来测试我们应用程序中的旧类。该代码尝试加载 ResourceBundle(用于翻译)但失败。我猜问题与类路径相关,但我无法弄清楚。
代码位于 /src 中,我的测试位于 /test 中。 ResourceBundle 加载时会给出相对于 /src 的基本名称,例如“foo/bar/baz”。
我的测试使用与应用程序本身相同的类路径,所以我不明白为什么它找不到捆绑包。
对出了什么问题有什么想法吗?
I'm trying to write some Junit tests to test old classes in our app. The code is trying to load a ResourceBundle (for translations) but fails. I guess the problem is classpath related but I can't figure it out.
The code is laid out in /src and my tests are in /test. The ResourceBundles are loaded given a base name relative to /src, say, "foo/bar/baz".
My tests use the same classpath as the app itself, so I don't understand why it won't find the bundles.
Any ideas to what's wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
资源不是从源文件夹解析的,而是从类目录解析的。您的资源文件是否已复制到输出文件夹(bin、目标/类等)?如果没有,您的班级将无法找到它们。
Resources are not resolved from the source folder but from the class directory. Are your resource files copied to the output folder (bin, target/classes etc.) ? If not, your classes can't find them.
如果您使用 Maven,您通常希望将所有类型的属性文件和资源包放在名为
src/main/resources/
的单独源文件夹中。如果您想覆盖单元测试中的值,那么您可以添加重复的道具。文件位于
src/test/resources
源文件夹中。If you are using maven, you typically want to put all kind of properties files and resource bundles in a separate source folder called
src/main/resources/
.If you want to override values in your unit tests then you can add a duplicate prop. file in the
src/test/resources
source folder.