bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


Barra lateral

ASIX Administració de Sistemes Informàtics i Xarxes
Tots els mòduls del cicle
MP01 Implantació de sistemes operatius
Totes les UFs del modul
MP02 Gestió de bases de dades
Totes les UFs del modul
MP03 Programació bàsica
Totes les UFs del modul
MP04 Llenguatges de marques i sistemes de gestió d'informació
Totes les UFs del modul
MP05 Fonaments de maquinari
Totes les UFs del modul
MP06 Administració de sistemes operatius
Totes les UFs del modul
MP07 Planificació i administració de xarxes
Totes les UFs del modul
MP08 Serveis de xarxa i Internet
Totes les UFs del modul
MP09 Implantació d'aplicacions web
Totes les UFs del modul
MP10 Administració de sistemes gestors de bases de dades
Totes les UFs del modul
MP11 Seguretat i alta disponibilitat
Totes les UFs del modul
MP12 Formació i orientació laboral
Totes les UFs del modul
MP13 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP14 Projecte
Totes les UFs del modul
DAM Desenvolupament d’aplicacions multiplataforma
Tots els mòduls del cicle
MP01 Sistemes informàtics
Totes les UFs del modul
MP02 Bases de dades
Totes les UFs del modul
MP03 Programació bàsica
Totes les UFs del modul
MP04 Llenguatges de marques i sistemes de gestió d'informació
Totes les UFs del modul
MP05 Entorns de desenvolupament
Totes les UFs del modul
MP06 Accés a dades
Totes les UFs del modul
MP07 Desenvolupament d’interfícies
Totes les UFs del modul
MP08 Programació multimèdia i dispositius mòbils
Totes les UFs del modul
MP09 Programació de serveis i processos
Totes les UFs del modul
MP10 Sistemes de gestió empresarial
Totes les UFs del modul
MP11 Formació i orientació laboral
Totes les UFs del modul
MP12 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP13 Projecte de síntesi
Totes les UFs del modul
MPDual Mòdul Dual / Projecte
DAW Desenvolupament d’aplicacions web
Tots els mòduls del cicle
MP01 Sistemes informàtics
Totes les UFs del modul
MP02 Bases de dades
Totes les UFs del modul
MP03 Programació
Totes les UFs del modul
MP04 Llenguatge de marques i sistemes de gestió d’informació
Totes les UFs del modul
MP05 Entorns de desenvolupament
Totes les UFs del modul
MP06 Desenvolupament web en entorn client
Totes les UFs del modul
MP07 Desenvolupament web en entorn servidor
Totes les UFs del modul
MP08 Desplegament d'aplicacions web
Totes les UFs del modul
MP09 Disseny d'interfícies web
Totes les UFs del modul
MP10 Formació i Orientació Laboral
Totes les UFs del modul
MP11 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP12 Projecte de síntesi
Totes les UFs del modul
SMX Sistemes Microinformàtics i Xarxes
Tots els mòduls del cicle
MP01 Muntatge i manteniment d’equips
Totes les UFs del modul
MP02 Sistemes Operatius Monolloc
Totes les UFs del modul
MP03 Aplicacions ofimàtiques
Totes les UFs del modul
MP04 Sistemes operatius en xarxa
Totes les UFs del modul
MP05 Xarxes locals
Totes les UFs del modul
MP06 Seguretat informàtica
Totes les UFs del modul
MP07 Serveis de xarxa
Totes les UFs del modul
MP08 Aplicacions Web
Totes les UFs del modul
MP09 Formació i Orientació Laboral
Totes les UFs del modul
MP10 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP11 Anglès
Totes les UFs del modul
MP12 Síntesi
Totes les UFs del modul
CETI Ciberseguretat en Entorns de les Tecnologies de la Informació
Tots els mòduls del cicle
CiberOT Ciberseguretat en Entorns d'Operació
Tots els mòduls del cicle
github_classroom_autograde

GitHub Classroom Autograde

GitHub Classroom Autograde ens permet testejar els repositoris pujats a una tramesa de GitHub Classroom.

Aquest article és per a professors que vulguin testejar automàticament les trameses dels alumnes.


Crear compte i inscriure alumnes

Primer de tot t'has de donar d'alta de Github Education i Github Classroom.

Després podràs crear una Github classroom.

Finalment, pots connectar els alumnes del teu Moodle amb Github Classroom.


Python Django

Per crear un autograde per a un projecte amb Django cal crear un test amb:

  • Setup command:
    cp .env.example .env ; sudo -H pip3 install -r requirements.txt ; cp .env.example .env || : ; python3 manage.py migrate
  • Run command (diversos exemples):
    • Per córrer els tests de Django (Firefox en mode headless):
      MOZ_HEADLESS=1 python3 manage.py test
    • Per testejar que el servidor es pot posar en marxa i serveix URLs:
      $(python3 manage.py runserver & sleep 5 ; killall python3) & sleep 2 ; curl localhost:8000/admin/login/

Amb Docker

Si hem dockeritzat l'app (veure Django docker) podem posar directament el Run command sense Setup command (docker ja està instal·lat a l'entorn de test de Github Actions):

  • Run command:
    docker-compose up -d --build ; sleep 5 ; curl localhost:8000/polls/

Per tal que l'autograde surti bé cal advertir els alumnes de que res compleixi:

  • El projecte Django ha d'estar a l'arrel i no en una subcarpeta (l'arxiu manage.py ha d'estar a l'arrel).
  • Cal posar un arxiu .env.example amb les variables d'entorn necessàries per poder fer una migració (es recomana utilitzar DATABASE_URL=sqlite:///db.sqlite3).
  • Cal crear algun test a test.py (veure Django test).


Java Gradle / Android Studio

En principi, posar en marxa els tests per a un projecte Java Gradle hauria de ser tan senzill com fer gradle test. Però si es tracta d'un projecte amb Android Studio no ho és tant, ja que necessita les SDK tools de Android i una versió concreta de Gradle.

Aquí tenim una pista de com configurar el workflow de Github Actions: https://github.com/android-actions/setup-android

Per posar el test en marxa, cal deixar buida la casella Setup command.

I posar aquesta línia de test a la casella Run command:

ANDROID_SDK_ROOT=/usr/local/lib/android/sdk ./gradlew test


Afegint MySQL als autotest

Si volem disposar d'una BD per als tests, caldrà fer diversos ajustos.

Al Marketplace de Github tenim de la possibilitat d'activar una BD MySQL en el Github Actions, i que es podrà emprar als tests.

La solució implica crear un starter workflow personalitzat dins la nostra organització, que activi la MySQL.

Per crear aquest starter workflow caldrà crear un repositori anomenat .github dins la nostra Github Organization i dins la carpeta workflow_templates.


Tests amb PHP i MySQL

Tens un repositori de plantilla a:

https://github.com/AWS2/php-mysql-world-test-template

Serveix per testejar els exercicis indicats a l'article PHP MySQL.

També podeu aprofondir en la confecció de tests a PHP test.

Per posar-ho en marxa et caldrà:

  1. Entrar a Github Classroom
  2. Crear roaster amb alumnes
  3. Crear nou Assignment.
  4. Utilitzar el repo template indicat més amunt com a plantilla.
  5. Afegir tests a Add Autograding Tests, en concret tenim 4 de preparats (les puntuacions son un exemple):
    1. Title Test (1 punt)
    2. Filter Test (3 punts)
    3. Join Test (2 punts)
    4. Add City Test (3 punts)
  6. Per posar a punt cadascun d'ells et caldrà anar a
    Add Test -> Run Command
    1. Test Name: text lliure, per exemple «test del títol».
    2. Setup Command:
      sudo .scripts/init.sh
    3. Run Command:
      vendor/bin/phpunit .tests/TitleTest.php
    4. Ull amb el script final post-test.sh: és imprescindible ja que apaga els serveis. Si no ho posem, el contenidor que fa el test de Github Actions no es tancarà mai (acabarà fent timeout).
    5. Puntuació: assignem els punts segons la dificultat del què calgui fer a l'alumne per superar el test (indicat més amunt per a aquest exemple).
  7. Al finalitzar es crearà un enllaç d'invitació per a l'Assignment.
  8. Testeja el repo tu mateix per veure si tot està bé. Et pots afegir tu mateix al roster de la classe i fer l'exercici com un alumne mes, sense enviar-los l'enllaç d'invitació.
  9. Envia l'enllaç d'invitació als teus alumnes. Aquest els crearà un repo privat a la organització on podran anar pujant el codi a src i aniran veient els tests que superen i la seva puntuació.


Tests amb Cordova i NodeJS

Autograding test:

  1. Setup command:
    sudo apt update ; sudo apt install -y nodejs ; sudo npm install -g cordova ; cordova platform add browser ; sudo snap remove firefox ; sudo apt install software-properties-common -y ; sudo add-apt-repository -y ppa:mozillateam/ppa ; sudo apt install firefox-esr
  2. Run command:
    cd .test ; npm install ; node 01-login-ok.js


Tests amb Flask

Autograding test:

  1. Setup command:
    sudo -H pip3 install -r requirements.txt ; sudo snap remove firefox ; sudo apt install software-properties-common -y ; sudo add-apt-repository -y ppa:mozillateam/ppa ; sudo apt install firefox-esr
  2. Run command:
    pytest --driver firefox .test/test_home.py
github_classroom_autograde.txt · Darrera modificació: 2024/02/19 20:07 per enric_mieza_sanchez