Где должны храниться тестовые классы в проекте? - PullRequest
3 голосов
/ 25 мая 2010

Я создаю все свои веб-проекты на работе, используя RAD / Eclipse, и мне интересно знать, где вы обычно храните файлы * .class вашего теста.

Все мои веб-проекты имеют 2 папки с исходными текстами: "src" для исходного кода и "test" для тестовых случаев. Сгенерированные файлы * .class для обеих исходных папок в настоящее время помещаются в папку WebContent / WEB-INF / classes.

Я хочу отделить тестовые файлы * .class от файлов src * .class по двум причинам: -

  • Нет смысла хранить их в классах WebContent / WEB-INF / и развертывать их в рабочей среде.
  • Сонар и некоторые другие инструменты статического анализа кода не дают точного статического анализа кода, потому что он учитывает мой дрянной, но правильный код тестового примера.

Итак, сейчас у меня есть следующие папки вывода: -

  • Исходная папка "src" компилируется в папку WebContent / WEB-INF / classes.
  • «test» исходная папка компилируется в папку target / test-classes.

Теперь я получаю предупреждение от RAD: -

Broken single-root rule: A project may not contain more than one output folder.

Итак, похоже, что IDE на основе Eclipse предпочитают один проект = одну выходную папку, но при этом у меня есть возможность настроить пользовательскую выходную папку для моей дополнительной исходной папки из диалогового окна «Путь к сборке», а затем лает на меня.

Я знаю, что могу отключить это предупреждение самостоятельно, но я хочу знать, как вы справляетесь с этим.

Обновление

Я приложил снимок экрана с диалогом пути сборки одного из моих проектов. Я использую RAD v7.5.5. Кажется, что большинство из вас строят свои проекты с Maven. Я люблю использовать Maven, я использую Maven где-нибудь еще, но работаю, потому что это плохо сочетается с Websphere. Если вы знаете, как заставить проект Mavenized работать с Webpshere, дайте мне знать тоже.

альтернативный текст http://www.imagebanana.com/img/89q9o46t/s1.jpg

Ответы [ 3 ]

3 голосов
/ 25 мая 2010

Я выбрал отдельный проект TEST для сосуществования с проектом SOURCE .

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

2 голосов
/ 25 мая 2010

Скажите, что тестируемый класс com.example.MyClass. Я бы поставил тест MyClassTest в той же упаковке com.example, но в отдельной папке test:

        module
        /     \
      src   -> target <-
      /  \
   main   test
     |      |
    java   java
     |       |
     com    com
     |        |
    example  example
     |        | 
MyClass.java MyClassTest.java

Это Стандартная директория Maven .

Но вы можете скомпилировать файлы классов для тестов и основных классов в одну папку вывода target.

1 голос
/ 25 мая 2010

Я не знаю, для RAD, но я могу сказать вам, что все мои проекты используют отдельную папку вывода для тестов и ресурсов тестирования без каких-либо проблем в Eclipse:

альтернативный текст http://www.imagebanana.com/img/9c8m79s/screenshot_008.png

...