NetBeans 6.9和JUnit 4.8.2包可见性问题

时间:2010-07-22 21:48:37

标签: java netbeans junit

我最近从NetBeans 6.7.1升级到NetBeans 6.9,我的旧JUnit测试在NetBeans编辑器中围绕import语句显示“找不到符号”错误。

所有内容都在这些单元测试中正确构建,我仍然可以运行/调试单元测试而不会出现任何问题。但是,编辑器中的自动完成对于它找不到的类根本不起作用。这使得创建新的JUnit测试变得很困难。

我可以正确地从套件中的另一个模块导入类。 Java API类也可以毫无问题地导入。这似乎是一个依赖问题,但我不知道如何解决它。

这是我正在运行的假设的NetBeans项目结构:

MyCodeSuite
- MyNetBeansModule1
- - Source Packages
- - - com.company.module1.foo
- - - - DoSomething1
- - - - DoSomethingElse1
- - - - ClassInQuestion
- - Unit Test Packages
- - - com.company.module1.foo
- - - - ClassInQuestionTest
- MyNetBeansModule2
- - Source Packages
- - - com.company.module2.foo
- - - - DoSomething2
- - - - DoSomethingElse2

ClassInQuestionTest.java:

package com.company.module1.foo;

import com.company.module1.foo.DoSomething1;  // this is where the editor starts showing errors; these errors are propagated throughout the code anywhere "DoSomething1" shows up
import com.company.module2.foo.DoSomething2;  // the editor doesn't complain for this one

// These imports all work correctly
import java.util.List;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;

我为新的单元测试以及现有的单元测试重复了这一点。我从com.company.module1.foo包中导入哪个类并不重要。编辑器显示该包内和该同一模块中的任何类的错误。

另请注意,我正在使用NetBeans 6.9中的“创建JUnit测试”上下文菜单项来进行新的单元测试。这也是原始单元测试类(在NB 6.7.1下)的创建方式。

4 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

答案 2 :(得分:0)

答案 3 :(得分:0)

@ george-pauley,同意没有实际错误,编辑只是显示错误。

我在NB 7.0.1自由格式Java project.xml中使用以下模式:

  • www.netbeans.org/ns/project/1.xsd
  • www.netbeans.org/ns/freeform-project/1.xsd
  • www.netbeans.org/ns/freeform-project/2.xsd
  • www.netbeans.org/ns/freeform-project-java/3.xsd

这些都不直接支持<test-dependency>

我通过NB GUI修复@ stever的原始问题:项目属性==&gt; Java Sources Classpath ==&gt; Java平台,对于所有“源包文件夹”,我将我的“Java平台”设置为有效“JDK 1.6”(即使我使用的是32位JDK 7u1)。

这消除了我的JUnit“无法找到符号”错误,但是稍微混淆了我的{project} / nbproject目录。除了修改“project.xml”之外,它还创建了以下4个新文件:

  • genfiles.properties
  • jdk.xml
  • nbjdk.properties
  • nbjdk.xml