- 1,159
- 38
- 544
Доброго всем дня. Как мы все знаем, создание мода начинается со скачивания MDK (или src для старых версий), его распаковки, импорта в IDE и запуска градл-тасков. Я заметил, что скачанный MDK с самого начала имеет 3 модуля:
И
Я подумал, что будет здорово хранить инструментальные тесты в
ВНИМАНИЕ, ВОПРОС!
Вопрос в том, как это сделать? Как прописать тест, который будет запускаться в самой игре?
ВАЖНОЕ P.S.
Очень вероятно, что я имеют неправильное представление зачем нужны эти модули в проекте и не знаю как их использовать. Любые наставления категорически приветствуются
- <MOD_NAME>_main
- <MOD_NAME>_test
- <MOD_NAME>_api
main
мы храним весь код нашего мода, в api
- классы и методы, которые могут быть использованы в других модах, зависимых от нашего, а в test
- юнит-тесты и инструментальные тестыЭто определение из Android-разработки. Бывают локальные юнит-тесты (которые не требуют запуска игры, т.к. тестируемый код не использует классы майна) и инструментальные тесты (это юнит-тесты, в которых тестируемый код зависит от классов майна). Инструментальные тесты используются, когда ванильные классы нельзя замокать. Локальные тесты же просто запускают JVM и выполняются, как простейший helloworld.
И
main
, и test
модули имеют прописанный путь к классу, который позволяет запустить майн из IDE с последующим билдом и инжектом нашего мода (в 1.12.2 test не имеет это ссылку)
XML:
<CLASSES>
<root url="file://$USER_HOME$/.gradle/caches/minecraft/net/minecraftforge/forge/1.7.10-10.13.4.1558-1.7.10/start" />
</CLASSES>
Я подумал, что будет здорово хранить инструментальные тесты в
test
модуле и при запуске игры просто указывать его в параметре "Use classpath or module":ВНИМАНИЕ, ВОПРОС!
Вопрос в том, как это сделать? Как прописать тест, который будет запускаться в самой игре?
ВАЖНОЕ P.S.
Очень вероятно, что я имеют неправильное представление зачем нужны эти модули в проекте и не знаю как их использовать. Любые наставления категорически приветствуются