2020-02-07 10:45:00 +00:00
|
|
|
|
# Тестирование задач
|
|
|
|
|
|
|
|
|
|
- Каждая задача должна лежать в отдельном пакете или пакетах.
|
|
|
|
|
- Зависимостей между пакетами на верхнем уровне быть не должно.
|
|
|
|
|
- Автоматические тесты на задачу должны запускаться через go test.
|
2021-02-13 09:55:06 +00:00
|
|
|
|
- Авторское решение задачи должно лежать в репозитории и включаться
|
2020-02-07 10:45:00 +00:00
|
|
|
|
билд тегом solution.
|
|
|
|
|
- Некоторые тесты в задаче могут быть приватными. Такие тесты должны
|
|
|
|
|
включаться билд тегом private. Эти тесты не будут доступны
|
|
|
|
|
студентам, но будут запускаться в момент проверки решения в
|
|
|
|
|
тестирующей системе.
|
|
|
|
|
- При посылке решения, на сервер отправляются все файлы внутри пакета.
|
|
|
|
|
- При тестировании, используются изменённые файлы пакета, и
|
|
|
|
|
оригинальные файлы тестов.
|
|
|
|
|
- Файл пакета можно защитить от изменения, добавив `// +build !change` в начало файла.
|
2021-03-30 23:06:15 +00:00
|
|
|
|
В этом случае при тестировании посылки всегда будет использоваться оригинальная версия файла.
|
2020-02-07 10:45:00 +00:00
|
|
|
|
- Тесты могут использовать файлы из директории testdata. Менять testdata нельзя.
|
|
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
# Запуск тестов студентом
|
|
|
|
|
go test ./...
|
|
|
|
|
|
|
|
|
|
# Запуск тестов при разработке задачи
|
|
|
|
|
go test -tags solution,private ./...
|
|
|
|
|
|
|
|
|
|
# Запуск тестов на сервере
|
|
|
|
|
## 1. Скопировать файлы пакета из посылки.
|
|
|
|
|
## 2. Скопировать все файлы тестов из приватного репозитория.
|
|
|
|
|
## 3. Скопировать !change файлы из приватного репозитория.
|
|
|
|
|
## 4. Скопировать testdata из приватного репозитория.
|
|
|
|
|
go test -tags private ./...
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Для проверки submission'ов есть testtool (см. docs/testtool.md).
|