Проблема видимости пакетов NetBeans 6.9 и JUnit 4.8.2 - PullRequest
0 голосов
/ 23 июля 2010

Я недавно обновил 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).

Ответы [ 4 ]

0 голосов
/ 08 декабря 2011

@ george-pauley, согласился без фактической ошибки, редактор просто отображал ошибки.

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

  • www.netbeans.org / нс / проект / 1.xsd
  • www.netbeans.org / нс / Freeform-проект / 1.xsd
  • www.netbeans.org / нс / Freeform-проект / 2.xsd
  • www.netbeans.org / нс / Freeform-проектов Java / 3.xsd

Ни один из этих вариантов не поддерживает <test-dependency> напрямую.

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

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

  • genfiles.properties
  • jdk.xml
  • nbjdk.properties
  • nbjdk.xml
0 голосов
/ 24 июля 2010

То есть вы импортируете из того же пакета, в котором находится ваш юнит-тест? Есть настройка на

Инструменты -> Параметры -> Редактор -> Подсказки -> Импорт -> Импорт из одного пакета

Это может быть связано. Вы также можете проверить параметры в Подсказки -> Сканирование зависимостей.

0 голосов
/ 26 июля 2010

Один из моих коллег понял это.

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

... единица измерения org.netbeans.libs.junit4 com.mycompany.mypackage

0 голосов
/ 24 июля 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...