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:49]
enric_mieza_sanchez [GitHub Classroom Autograde]
github_classroom_autograde [2024/02/19 20:07] (actual)
enric_mieza_sanchez [Python Django]
Línia 4: Línia 4:
  
 Aquest article és per a professors que vulguin testejar automàticament les trameses dels alumnes. Aquest article és per a professors que vulguin testejar automàticament les trameses dels alumnes.
 +
  
 \\ \\
Línia 13: 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 19: 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 58: 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à:
Línia 72: 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).
Línia 80: Línia 89:
  
 \\ \\
 +
 +
 +===== Tests amb Cordova i 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.1669031387.txt.gz · Darrera modificació: 2022/11/21 11:49 per enric_mieza_sanchez