2010-07-22 7 views
0

Недавно я обновил NetBeans 6.7.1 до NetBeans 6.9, а мои старые тесты JUnit показывают ошибки «не могут найти символ» в редакторе NetBeans вокруг операторов импорта.Проблемы с видимостью пакета NetBeans 6.9 и JUnit 4.8.2

Все строит правильно на этих модульных тестах, и я все еще могу запускать/отлаживать модульные тесты без каких-либо проблем. Однако автозаполнение в редакторе не работает вообще для классов, которые он не может найти. Это затрудняет создание новых тестов 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. Редактор показывает ошибки для любого класса внутри этого пакета и внутри этого же модуля.

Также обратите внимание, что я использую пункт контекстного меню «Создать JUnit Tests» в NetBeans 6.9 для получения новых модульных тестов. Это также то, как были созданы исходные единицы тестов классов (в соответствии с NB 6.7.1).

+0

Да, у меня тоже было это всплывающее окно. Никогда не мог понять это, так как это, по-видимому, случайно поразит проекты. –

ответ

0

Один из моих сотрудников выяснил это.

Тесты вашего устройства требуют зависимости от тестируемого пакета. К сожалению, вы не можете сделать это через графический интерфейс NetBeans. Но вы можете сделать это, непосредственно отредактировав файл project.xml напрямую. Вот пример: bold часть - это то, что я добавил.

... блок org.netbeans.libs.junit4 com.mycompany.mypackage

+0

вздох, я не могу сделать этот формат правильно. Вам нужно добавить раздел , который указывает на пакет, который вы хотите проверить. –

+0

Так оно и было. Фантастика. Предостережения: вы не должны включать тег в разделе , и вы должны включить . Так было, по крайней мере, с моей миграцией и модулем. – stever

0

Это сводит меня с ума!

Стоит отметить, что фактической ошибки нет, тесты будут работать нормально. Это просто редактор, который испорчен.

0

Итак, вы импортируете из той же упаковки, что и в вашем модульном тесте? Существует установка на

Сервис -> Параметры -> Редактор -> Подсказки -> Импорт -> Импорт из того же пакета

Это может быть связано. Вы также можете проверить параметры в Hints -> Dependency Scanning.

+0

Привет, Йорн, я нашел варианты, которые вы предложили, и попробовал их безрезультатно. Любые другие идеи? – stever

0

@ владимир-Pauley согласовал не фактической ошибки, редактор просто показывал ошибки.

Я использую следующие схемы в своем проекте Java свободной формы NB 7.0.1.XML:

  • www.netbeans.org/ns/project/1.xsd
  • www.netbeans.org/ns/freeform-project/1.xsd
  • www.netbeans.org/ns/ Freeform-проект/2.xsd
  • не www.netbeans.org/ns/freeform-project-java/3.xsd~~V

ни один из этих поддержки <test-dependency> непосредственно.

Мое исправление исходной проблемы @ stever с помощью графического интерфейса NB: Свойства проекта ==> Источники Java Classpath ==> Платформа Java, для всех «Папок исходного пакета», я установил свою «платформу Java» в действительный " JDK 1.6 "(хотя я строю 32-битный JDK 7u1).

Это устраняет ошибки JUnit «не удается найти символ», но немного путает мой каталог {project}/nbproject. В дополнение к модификации "project.xml", он создал следующие 4 новые файлы:

  • genfiles.properties
  • jdk.xml
  • nbjdk.properties
  • nbjdk.xml
Смежные вопросы