bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


github_classroom_autograde

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
github_classroom_autograde [2022/11/21 11:23]
enric_mieza_sanchez [Tests amb PHP i MySQL]
github_classroom_autograde [2024/02/19 20:07] (actual)
enric_mieza_sanchez [Python Django]
Línia 2: Línia 2:
  
 GitHub Classroom Autograde ens permet testejar els repositoris pujats a una tramesa de GitHub Classroom. 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.
 +
  
 \\ \\
Línia 11: Línia 14:
  
 Finalment, pots [[https://docs.github.com/en/education/manage-coursework-with-github-classroom/teach-with-github-classroom/connect-a-learning-management-system-to-github-classroom|connectar els alumnes del teu Moodle amb Github Classroom]]. Finalment, pots [[https://docs.github.com/en/education/manage-coursework-with-github-classroom/teach-with-github-classroom/connect-a-learning-management-system-to-github-classroom|connectar els alumnes del teu Moodle amb Github Classroom]].
- 
  
 \\ \\
Línia 17: Línia 19:
 ===== Python Django ===== ===== Python Django =====
 Per crear un //autograde// per a un projecte amb Django cal crear un test amb: Per crear un //autograde// per a un projecte amb Django cal crear un test amb:
-  * Setup command:<code>cp .env.example .env ; sudo -H pip3 install -r requirements.txt ; python3 manage.py migrate</code> +  * Setup command:<WRAP prewrap><code>cp .env.example .env ; sudo -H pip3 install -r requirements.txt ; cp .env.example .env || : ; python3 manage.py migrate</code></WRAP
-  * Run command:<code>python3 manage.py test</code>+  * Run command (diversos exemples): 
 +    * Per córrer els tests de Django (Firefox en mode //headless//):<code>MOZ_HEADLESS=1 python3 manage.py test</code> 
 +    * Per testejar que el servidor es pot posar en marxa i serveix URLs:<WRAP prewrap><code>$(python3 manage.py runserver & sleep 5 ; killall python3) & sleep 2 ; curl localhost:8000/admin/login/</code></WRAP> 
 + 
 +==== 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:<code>docker-compose up -d --build ; sleep 5 ; curl localhost:8000/polls/</code>
  
 Per tal que l'autograde surti bé cal advertir els alumnes de que res compleixi: 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).   * 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 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''.+  * Cal crear algun test a ''test.py'' (veure [[Django test]]).
  
 \\ \\
 +
  
 ===== Java Gradle / Android Studio ===== ===== Java Gradle / Android Studio =====
Línia 56: Línia 65:
  
 Serveix per testejar els exercicis indicats a l'article [[PHP MySQL]]. 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à: Per posar-ho en marxa et caldrà:
   - Entrar a Github Classroom   - Entrar a Github Classroom
   - Crear roaster amb alumnes   - Crear roaster amb alumnes
-  - Crear nou //Assignament//.+  - Crear nou //Assignment//.
   - Utilitzar el repo template indicat més amunt com a plantilla.   - Utilitzar el repo template indicat més amunt com a plantilla.
   - Afegir tests a **Add Autograding Tests**, en concret tenim 4 de preparats (les puntuacions son un exemple):   - Afegir tests a **Add Autograding Tests**, en concret tenim 4 de preparats (les puntuacions son un exemple):
Línia 70: Línia 81:
     - Test Name: text lliure, per exemple "test del títol".     - Test Name: text lliure, per exemple "test del títol".
     - Setup Command: <code>sudo .scripts/init.sh</code>     - Setup Command: <code>sudo .scripts/init.sh</code>
-    - Run Command: <code>vendor/bin/phpunit .tests/TitleTest.php ; EXIT=$? ; sudo .scripts/post-test.sh ; exit $EXIT</code>+    - Run Command: <code>vendor/bin/phpunit .tests/TitleTest.php</code>
     - 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//).     - 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//).
     - 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).     - 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).
-  - Al finalitzar es crearà enllaç d'invitació. Envia-ho 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ó.+  - Al finalitzar es crearà un enllaç d'invitació per a l'//Assignment//. 
 +  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ó. 
 +  - 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ó.
  
-Es recomana abans de enviar la tramesa als alumnes, de testejar el repo tu mateix, veure si tot està bé. Sempre calen molts retocs abans de que estigui tot funcionant i en ordre. Et pots afegir tu mateix al //roster// de la classe i fer l'exercici com un alumne mesQuan ho tinguis ben testejat, comparteix la invitació amb els alumnes.+\\ 
 + 
 + 
 +===== Tests amb Cordova NodeJS ===== 
 + 
 +Autograding test: 
 +  - Setup command:<WRAP prewrap><code>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</code></WRAP> 
 +  - Run command:<code>cd .test ; npm install ; node 01-login-ok.js</code>
  
 \\ \\
 +
 +===== Tests amb Flask =====
 +
 +Autograding test:
 +
 +  - Setup command:<WRAP prewrap><code>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</code></WRAP>
 +  - Run command:<code>pytest --driver firefox .test/test_home.py</code>
 +
 +
 +
  
github_classroom_autograde.1669029818.txt.gz · Darrera modificació: 2022/11/21 11:23 per enric_mieza_sanchez