Сборка Ant - инструментарий кода Emma - для тестов JUnit нужны интерфейсы, Emma не использует их

У меня есть файл сборки Ant, в котором я компилирую исходный код Java приложения и тестов, инструментирую классы приложения, запускаю тесты JUnit и генерирую отчеты о покрытии кода JUnit и Emma. Задаче JUnit задается путь к инструментированным классам.

Проблема в том, что интерфейсы не оснащены инструментами ( FAQ Эммы ) но я использую их в тестах, и JUnit не может их найти.

Я могу придумать 2 решения:

  • не использовать интерфейсы в тестах (идет вразрез с программированием интерфейсов - считается ли это в тестах?)
  • копировать интерфейсы рядом с инструментированными классами (жестко кодировать путь к интерфейсам)

Как мне подойти и решить эту проблему?

4 голоса | спросил user328229 2 J000000Friday10 2010, 01:05:12

1 ответ


0

Мне кажется, что вы говорите, что у JUnit проблемы, потому что интерфейсы не находятся на пути к классам?

Обычный ответ - поместить их туда.

Быстрый и грязный ответ может состоять в том, чтобы поместить путь к классам для неинструментированных классов в путь к классу juint ПОСЛЕ пути к инструментированным классам. Загрузчик классов должен использовать первое найденное совпадение, поэтому инструментальные реализации будут использоваться вместо неинструментированных реализаций, но интерфейсы все равно будут доступны.

Если это решит вашу проблему, вы можете заменить быстрое и грязное на что-то более надежное, например, сделать интерфейсы доступными в банке, отдельной от реализации.

ответил VoiceOfUnreason 2 J000000Friday10 2010, 02:37:06

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132