Использование GitHub в обучении студентов. Автоматизация проверок. Часть II

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Это продолжение статьи про автоматизацию проверок работ студентов (первая часть - https://habr.com/ru/post/687940/)

Сегодня продолжу рассказывать про автоматизацию проверок работ студентов: проверку правильности решения (прохождение unit-тестов). И пока ещё примеры будут связаны с C#.

Понимаю, что для многих информация в статье будет "слабой" и т.п. Но, надеюсь, хоть какому-нибудь преподавателю она пригодится. Потому как, многие преподаватели программирования не знают как облегчить себе проверки студенческих работ. Даже таким простым способом.

Добавить в репозиторий проверку прохождения unit-тестов на C# нет ничего сложного. При создании workflow в GitHub Actions можно выбрать workflow специфичные для .Net.

Предлагаемого варианта хватит с лихвой. Я только немного подправляю код "под себя".

name: dotnet test

on:
  pull_request:
    branches: [ "master" ]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v3

    - name: Setup .NET
      uses: actions/setup-dotnet@v3
      with:
        dotnet-version: 6.0.x

    - name: Restore dependencies
      run: dotnet restore

    - name: Build
      run: dotnet build --no-restore

    - name: Test
      run: dotnet test --no-build --verbosity normal

Почему я использую отдельный файл для автоматизации прохождения тестирования, а не добавляю этапы в один workflow? Ответ простой: чтобы разграничить вывод результатов, чтобы понимать что прошло, а что нет. Так проще потом объяснять студентам: тесты пройдены, а вот правила оформления кода не соблюдаются.

После выполнения мы получим "небольшой отчёт", примерно как на изображениях ниже.

Помимо прохождения самих unit-тестов в данном workflow происходит ещё выполнение сборки. Следовательно мы увидим предупреждения и ошибки сборки проектов решения.

Остаётся дело за малым: чтобы студенты научились писать unit-тесты. Почему я не советую писать unit-тесты преподавателю заранее? Потому, что я стараюсь давать такие задания, для которых сложно сразу написать тесты. И мне важно чтобы студенты учились самостоятельно проектировать библиотеки классов. А если они их проектируют самостоятельно - то и подходить к написанию тестов нужно индивидуально. И да, этот подход влечёт за собой ещё и проверку правильности написания unit-тестов. Но нужно же подходить к работе преподавателя программирования со всей ответственностью и с правильным закладыванием фундамента, который требуется отрасли.

Можно добавить ещё и вывод о покрытии кода тестами и много чего ещё. Но об этом в следующих статьях.

Источник: https://habr.com/ru/post/692260/


Интересные статьи

Интересные статьи

Автор: Александр МуллагазиевРоссийская Империя. Конец ХIX века. Уездный городок Боровск - религиозный до самых пяток, столица русского старообрядчества.Условный Иван Иваныч, отстоявший свое на службе ...
Приветствую. Представляю вашему вниманию перевод статьи «Keep the Footer at the Bottom: Flexbox vs. Grid», опубликованной 8 апреля 2020 года автором Stephanie Eckles Это первая ст...
В первой части статьи мы рассмотрели основы работы с утилитой SIP, предназначенной для создания Python-обвязок (Python bindings) для библиотек, написанных на языках C и C++. Мы рассмотрели основн...
Несколько раз от коллег звучал вопрос о том, что не понятно, зачем вообще нужны mixin'ы (примеси) в языке Dart. Я решил посмотреть, что есть на просторах Интернета по этому вопросу. К великому ог...
Еще одна вещь, о которой я забыл упомянуть – ACL не только фильтрует трафик по принципу разрешить/отказать, он выполняет ещё много функций. Например, ACL используется для шифрования трафика VPN, ...