java - 如何在netbeans中组织不同的java源文件夹(用于测试)?

标签 java netbeans junit

我正在 Netbeans (8.0.2) 中开发一个项目,该项目使用 JUnit (4.x) 来测试应用程序代码(在 Netbeans 模块中)。在同一模块中,我还有一些集成测试。我找到了一种分离应用程序代码、单元测试和集成测试的方法,方法是将后者放入 MODULE_PATH\test\qa-functions\src 下的单独文件夹中。这样,Netbeans IDE 将这三种语义不同类型的类放入单独的文件夹中:

Netbeans projects view with collapsed source, unit and functional test packages

问题是,我的功能测试往往会变得复杂,所以我更愿意对它们进行单元测试。但是,如果为功能测试包的类创建单元测试(在单元测试包中),则该测试不会编译。似乎是一些类路径问题。

Netbeans projects view with expanded source, unit and functional test packages. IntegrationTestTest.java has an error

我知道我也可以将功能测试的单元测试放在功能测试包中(如果这个问题没有为我提供一些解决方案,我会这样做),但无论如何,有没有办法解决这个问题在 Netbeans 中?

我发现了一个糟糕的解决方案,改变了 common.xml 中 ant 目标的顺序(在 NB 8.0.2 的第 610 行)。但这显然是不可移植的,随着新版本的 Netbeans 的变化,..所以这并不是一个真正的解决方案。详情请参阅Netbeans Forum: Classpath problem when unit testing functional tests

在 Eclipse 中,我只需在 Java 构建路径上添加一个新的源文件夹。但 Netbeans 中不存在这种机制? 为了清楚起见,我添加了屏幕截图。

Eclipse package explorer with separate unit test folders for src and functional test code

预先感谢您的帮助。

最佳答案

您正在尝试做错误的事情:

  • 单元测试应该验证尽可能小的功能,例如方法正在产生预期的结果
  • NetBeans 中的功能测试代表集成测试,即当您将应用程序视为黑盒时的测试

在“功能测试”中对功能进行“单元测试”是没有意义的。 NetBeans 独立对待测试文件夹,以便它们不在彼此的类路径上,这就是它不这样做的原因在 NetBeans 中工作。

关于java - 如何在netbeans中组织不同的java源文件夹(用于测试)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29110228/

相关文章:

java - 从java中的arrayList中删除一个项目

java - 多个@Test、Selenium WebDriver 之间的 Get() 和 Set()

java - 在 ListView 中单击复选框时,值未添加到数组列表中。

java - 监控 Java 应用程序自己的内存使用情况

svn - 显示每个 Netbeans 项目文件自己的 svn 修订号

java - nandroid - 程序崩溃时如何启动调试器?

java - 按顺序进行 Junit 自动化测试

java - 在测试方法实现中使用模拟对象

java - ResultSetMetaData.getColumnTypeName 返回 UNKNOWN

java - 如何检查 Snapchat 帐户是否存在?