shad-go/docs/build.md
Arseny Balobanov a2390c81d0 fix-docs
2022-02-17 20:04:02 +03:00

2.3 KiB
Raw Blame History

Тестирование задач

  • Каждая задача должна лежать в отдельном пакете или пакетах.
  • Зависимостей между пакетами на верхнем уровне быть не должно.
  • Автоматические тесты на задачу должны запускаться через go test.
  • Авторское решение задачи должно лежать в репозитории и включаться билд тегом solution.
  • Некоторые тесты в задаче могут быть приватными. Такие тесты должны включаться билд тегом private. Эти тесты не будут доступны студентам, но будут запускаться в момент проверки решения в тестирующей системе.
  • При посылке решения, на сервер отправляются все файлы внутри пакета.
  • При тестировании, используются изменённые файлы пакета, и оригинальные файлы тестов.
  • Файл пакета можно защитить от изменения, добавив //go:build !change в начало файла. В этом случае при тестировании посылки всегда будет использоваться оригинальная версия файла.
  • Тесты могут использовать файлы из директории testdata. Менять testdata нельзя.
# Запуск тестов студентом
go test ./...

# Запуск тестов при разработке задачи
go test -tags solution,private ./...

# Запуск тестов на сервере
## 1. Скопировать файлы пакета из посылки.
## 2. Скопировать все файлы тестов из приватного репозитория.
## 3. Скопировать !change файлы из приватного репозитория.
## 4. Скопировать testdata из приватного репозитория.
go test -tags private ./...

Для проверки submission'ов есть testtool (см. docs/testtool.md).