将测试文件添加到 Netbeans 6.7.1 中的 Junit 测试 - getResource 问题,构建目录中缺少文件
我正在使用 NetBeans 6.7.1 将 Junit 测试添加到我的一个类中,我需要能够加载特定于测试的 xml 文件,因此我将其包含在“测试包”文件夹中(以及我的实际测试)。我遇到了 2 个问题,
(1) getResource 在错误的目录中查找
(2) 当我运行测试时,我的 xml 测试文件没有被复制(注意,此功能适用于我将文件添加到“源包”目录)。
在我的测试课中:
this.getClass().getResource("/")
返回:
D:\UserProfiles\myName\My Documents\NetBeansProjects\ProjectExample\build\classes
我也需要它返回:
D:\UserProfiles\myName\My Documents\NetBeansProjects\ProjectExample \build\test\classes
(因为这是编译测试类的地方)
调用 getResource,获取父级,然后在 test\classes 中查找似乎相当老套。这是获取测试文件路径的正确方法吗?也许这是 netbeans 中的一个错误?
另外,当我右键单击我的 testFile 并“运行测试”时,只有我的测试类文件被复制到 test/classes 目录,而不是我的 xml 测试文件。如何告诉 Netbeans 确保将常规 xml 文件与类文件一起复制到构建目录。
我还想避免破解 ant 构建来复制我的测试文件。
I'm adding a Junit test to one of my classes using NetBeans 6.7.1, I need to be able to load a an xml file specific to testing, so I've included it in the "Test Packages" folder (along with my actual test). I'm running into 2 issues,
(1) getResource is looking in the wrong directory
(2) my xml test file doesn't get copied when I run tests (note, this functionality works with I add files to the "Sources Packages" directory).
In my test class:
this.getClass().getResource("/")
returns:
D:\UserProfiles\myName\My Documents\NetBeansProjects\ProjectExample\build\classes
I need it too return:
D:\UserProfiles\myName\My Documents\NetBeansProjects\ProjectExample\build\test\classes
(As that is where the test classes are being compiled)
It seems rather hacky calling getResource, getting the parent, and then looking in test\classes. Is this the proper way of getting the path to my test file ? maybe this is a bug in netbeans ?
Also, when I right click on my testFile and "run tests" , only my test class files get copied to the test/classes directory and not my xml test file. How do I tell Netbeans to make sure to copy a regular xml file along with class files to the build directory.
I would also like to avoid hacking the ant build to copy my test files.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我最近使用 NetBeans 6.9.1 遇到了这个问题。我是这样解决的。
现在可以使用这些资源运行测试。我使用 NetBeans 6.9.1 和一个简单的 Java 应用程序对此进行了测试。
NetBeans默认在src目录下创建资源文件(默认包),所以我在上面的第5步中添加了src文件夹。一旦您执行了在类路径中查找资源文件的测试,就会找到它。
由于 NetBeans 默认情况下会打包 src 文件夹中的资源,因此您无需复制文件并保持它们同步。
如果您希望测试资源与生产资源不同,可以将测试资源添加到test文件夹下的默认包中。然后,不要添加上面步骤 4/5 中的 src 文件夹,而是添加 test 文件夹。
I recently ran into this problem using NetBeans 6.9.1. Here's how I solved it.
Now running tests using those resources will work. I tested this with NetBeans 6.9.1 and a simple Java Application.
NetBeans creates resource files in the src directory by default (default package), so I added the src folder in step 5 above. Once you do that tests looking for a resource file in the classpath will find it.
Since NetBeans packages the resources found in src folder by default, you don't need to copy the files around and keep them in sync.
If you want test resources different from production resources, you can add the test resources in the default package under the test folder. Then instead of adding the src folder in step 4/5 above, add the test folder.
只需将您的文件与测试放在同一个包中,例如,将 data.xml 放在包 foo.bar 中。无需复制或构建脚本黑客,只需像这样引用该文件:
或者,您可以执行以下操作:
Just put your file in the same package as your test, say, data.xml in package foo.bar. No copying or build script hacking is necessary, just refer to the file like this:
Alternatively, you can do this: