Сообщение Re: Юнит-тесты в докере, как лучше? от 21.04.2021 19:19
Изменено 21.04.2021 19:19 VladCore
Re: Юнит-тесты в докере, как лучше?
Здравствуйте, Sharov, Вы писали:
S>Допустим имеется сл. Dockerfile :
S>
S>Необходимо в докере скопировать файлы для тестов, как-то получить результат выполнения тестов (успех или нет).
S>1) как это сделать -- запуск тестов и получение результатов теста;
S>2) самое главное, как быть с тестовыми файлами, которые для образа не нежны и весят почти ~200Мб?
S>Для пункта 2) пока видятся две опции -- на этапе сборки в TC создать отдельный контейнер для тестов,
S>т.е. просто создать образ, прогнать тесты, если все успешно продолжаем дальше и создаем уже другой,
S>рабочий образ. Минус видится -- все это долго, да и не нужный образ создается. Второй вариант --
S>все делать в одном контейнере, по результатам теста давать какой-то отчет,
S>далее все ненужные файлы удаляются и остаются только библиотеки и/или один исполняемый файл.
ну для такого докер не нужен. если ты конечно не библитеку пишеш для NET Framework и NET Core. и nuget.config как web.config "уточняется" в каждой подпапке.
А тесты с базами редисами и кучей своих прочих сервисов как системы целиком делаются опцией --exit-code-from имя_котнейнера_с_тестами
docker-compose up --exit-code-from tests
тут tests — это контейнер с единственной командой dotnet test
S>Допустим имеется сл. Dockerfile :
S>
стандартный набор | |
S>
| |
S>Необходимо в докере скопировать файлы для тестов, как-то получить результат выполнения тестов (успех или нет).
S>1) как это сделать -- запуск тестов и получение результатов теста;
S>2) самое главное, как быть с тестовыми файлами, которые для образа не нежны и весят почти ~200Мб?
S>Для пункта 2) пока видятся две опции -- на этапе сборки в TC создать отдельный контейнер для тестов,
S>т.е. просто создать образ, прогнать тесты, если все успешно продолжаем дальше и создаем уже другой,
S>рабочий образ. Минус видится -- все это долго, да и не нужный образ создается. Второй вариант --
S>все делать в одном контейнере, по результатам теста давать какой-то отчет,
S>далее все ненужные файлы удаляются и остаются только библиотеки и/или один исполняемый файл.
ну для такого докер не нужен. если ты конечно не библитеку пишеш для NET Framework и NET Core. и nuget.config как web.config "уточняется" в каждой подпапке.
А тесты с базами редисами и кучей своих прочих сервисов как системы целиком делаются опцией --exit-code-from имя_котнейнера_с_тестами
docker-compose up --exit-code-from tests
тут tests — это контейнер с единственной командой dotnet test
Re: Юнит-тесты в докере, как лучше?
Здравствуйте, Sharov, Вы писали:
S>Допустим имеется сл. Dockerfile :
S>
S>Необходимо в докере скопировать файлы для тестов, как-то получить результат выполнения тестов (успех или нет).
S>1) как это сделать -- запуск тестов и получение результатов теста;
S>2) самое главное, как быть с тестовыми файлами, которые для образа не нежны и весят почти ~200Мб?
S>Для пункта 2) пока видятся две опции -- на этапе сборки в TC создать отдельный контейнер для тестов,
S>т.е. просто создать образ, прогнать тесты, если все успешно продолжаем дальше и создаем уже другой,
S>рабочий образ. Минус видится -- все это долго, да и не нужный образ создается. Второй вариант --
S>все делать в одном контейнере, по результатам теста давать какой-то отчет,
S>далее все ненужные файлы удаляются и остаются только библиотеки и/или один исполняемый файл.
ну для такого докер не нужен. если ты конечно не библитеку пишеш для NET Framework и NET Core. и nuget.config как web.config "уточняется" в каждой подпапке.
А тесты с базами редисами и кучей своих прочих сервисов как системы целиком делаются опцией --exit-code-from имя_котнейнера_с_тестами
тут tests — это контейнер с единственной командой dotnet test
S>Допустим имеется сл. Dockerfile :
S>
стандартный набор | |
S>
| |
S>Необходимо в докере скопировать файлы для тестов, как-то получить результат выполнения тестов (успех или нет).
S>1) как это сделать -- запуск тестов и получение результатов теста;
S>2) самое главное, как быть с тестовыми файлами, которые для образа не нежны и весят почти ~200Мб?
S>Для пункта 2) пока видятся две опции -- на этапе сборки в TC создать отдельный контейнер для тестов,
S>т.е. просто создать образ, прогнать тесты, если все успешно продолжаем дальше и создаем уже другой,
S>рабочий образ. Минус видится -- все это долго, да и не нужный образ создается. Второй вариант --
S>все делать в одном контейнере, по результатам теста давать какой-то отчет,
S>далее все ненужные файлы удаляются и остаются только библиотеки и/или один исполняемый файл.
ну для такого докер не нужен. если ты конечно не библитеку пишеш для NET Framework и NET Core. и nuget.config как web.config "уточняется" в каждой подпапке.
А тесты с базами редисами и кучей своих прочих сервисов как системы целиком делаются опцией --exit-code-from имя_котнейнера_с_тестами
docker-compose up --exit-code-from tests
тут tests — это контейнер с единственной командой dotnet test