shad-go/docs/build.md

35 lines
2.3 KiB
Markdown
Raw Permalink Normal View History

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. Эти тесты не будут доступны
студентам, но будут запускаться в момент проверки решения в
тестирующей системе.
- При посылке решения, на сервер отправляются все файлы внутри пакета.
2022-03-06 02:06:00 +00:00
- При тестировании, используются изменённые файлы пакета и
2020-02-07 10:45:00 +00:00
оригинальные файлы тестов.
2022-02-17 17:04:02 +00:00
- Файл пакета можно защитить от изменения, добавив `//go: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).