/java-advanced-hw-testing

Guidelines to homework testing in IDEA

Primary LanguageJava

java-advanced-hw-testing

Инструкции по настройке тестов (в том числе кастомных) для домашек по Java Advanced.

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

Шаг 1

Склонируйте реп и откройте его в IDEA.

> git clone https://www.kgeorgiy.info/git/geo/java-advanced-2021

Все должно светится красным.

Шаг 2

Открываем File -> Project Structure -> Modules, видим следующую картину:

Теперь нам надо добавить в сурсы модулям base и walk либы, которые у нас лежат в виде джарников. Делается это так - нажимаем на модуль, нажимаем на +, выбираем library, открывается такое меню:

Здесь надо выбрать папку lib. Повторяем это для обоих модулей.

Это важный чекпоинт - сейчас у вас не должно быть красных подчеркиваний в Гошиных файлах. Если это не так, перезапустите IDEA.

Шаг 3

Создаем свой модуль. Для этого во всё том же Project Structure нажимаем + над списком модулей, следуем по инструкции, кладем его в пакет к двум другим модулям.

Теперь аккуратно, следите за руками. Надо открыть наш модуль, в нём вкладку Sources и удалить оттуда папку src (физически папка не удалится).

После этого надо добавить туда корень нашего модуля (он отображается как .).

Далее, надо добавить нашему модулю в сурсы либы и Гошины модули. Либы мы уже добавляли, модули добавляются так же.

Теперь в модуле нужно создать module-info именно с таким контентом. Затем создаём в нашем модуле пакет с названием как у модуля и внутри - наши файлы с решением. Это почти все.

Шаг 4 - кастомные тесты

В нашем пакете создаем CustomTester. Он экстендит Гошин оригинальный тестер без изменений кроме psvm потому, что мы не хотим менять оригинальные тесты.

Кроме этого, создаем там же CustomTest. Это файл, где мы будем хранить кастомные тесты.

Ремарка: можно не экстендить RecursiveWalkTest, тогда при запуске конфигурации будут гоняться только кастомные тесты.

Теперь идем в конфигурации, нажимаем Add Configuration... -> + -> Application, конфиг делаем в точности такой (имя можно менять):

Все. Теперь при запуске этой конфигурации у вас будут гонять все тесты. Если хотите запустить только Гошины, то в строке Program arguments замените Custom на те тесты, которые вам нужны (вероятно, Recursive).

Шаг 5 - как удобно решать таски

Авторский совет — решайте таски в своём клоне этого репозитория (где тесты), а когда решили — пушьте в личный репозиторий. Дальше гайд от меня, как сделать ваш опыт сдачи чуть приятнее и удобнее.

Когда клонируете свой репозиторий, используйте команду

> git clone http://ФАМИЛИЯ_ИМЯ:ПАРОЛЬ@www.kgeorgiy.info/git-students/year2019/ФАМИЛИЯ_ИМЯ/java-advanced

Если же вы уже клонировали его, то можно использовать команду

> git remote set-url origin http://ФАМИЛИЯ_ИМЯ:ПАРОЛЬ@www.kgeorgiy.info/git-students/year2019/ФАМИЛИЯ_ИМЯ/java-advanced

КОММЕНТАРИЙ ОТ КГЕОРГИЯ: Пожалуйста, не надо так делать!

  1. Вы клонируете репозиторий по http (а не https)
  2. Для этого есть специальный механизм, который работает всегда, а не только с некоторым схемами URL.

Как можно понять, вы просто сразу задаете гиту свои логин и пароль, запоминая их на будущее. Теперь вам не придется вводить их каждый раз когда вы пушите. Это же поможет нам использовать bash-скрипт.

Этот скрипт сделает рекурсивную копию вашего модуля, игнорируя файлы IDEA и module-info.java, а также все .java файлы, имеющие суффикс Test или Tester.

Помните, что скрипт может насрать, если вы предварительно не запуллили Гошины правки/замечания с помощью другого замечательного скрипта.

Шаг 6 - а ведь есть и другие задания

Да, есть. Процесс точно обобщается и для них. Каждый раз, когда выкладываются тесты, не забывайте пуллить их к себе в этот репозиторий, и жизнь ваша будет хороша.