Я недавно обновил NetBeans 6.7.1 до NetBeans 6.9, и мои старые тесты JUnit показывают ошибки «не удается найти символ» в редакторе NetBeans вокруг операторов импорта.
На этих модульных тестах все строится правильно, и я по-прежнему могу запускать / отлаживать модульные тесты без каких-либо проблем. Однако автозавершение в редакторе вообще не работает для классов, которые он не может найти. Это затрудняет создание новых тестов JUnit.
Я могу импортировать классы из другого модуля в комплекте правильно. Классы API Java также импортируются без проблем. Это похоже на проблему с зависимостями, но я не знаю, как ее исправить.
Вот гипотетическая структура проекта 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
. Редактор показывает ошибки для любого класса в этом пакете и в том же модуле.
Также обратите внимание, что я использую пункт контекстного меню «Создать тесты JUnit» в NetBeans 6.9, чтобы начать новые модульные тесты. Так же были созданы исходные классы модульных тестов (в соответствии с NB 6.7.1).