Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Aiuto pacchetti test Homework uno

a
andreasolda (740 points)
15 17 21
in HW1 opzionale by (740 points)
Salve a tutti, mi servirebbe una mano per capire come e quali sono le librerie per effettuare i test Sull’hw1 sono riuscito a  installare il profiler su prompt

Come faccio ad istallare gli altri pacchetti dtt ecc, Vanno installati su spider o console . Sono su Mac qualcuno sa aiutarmi con i comandi da inserire

Grazie mille per qualsiasi risposta
613 views

3 Answers

AndreaGasparini (18850 points)
7 12 120
by (18.9k points)
edited by

Come trovi anche spiegato nel post del professore è sufficiente aprire Anaconda Prompt e lanciare i comandi:

  • conda install -c conda-forge ddt
  • conda install pytest-timeout​

Dopodiché sarai in grado di eseguire tutti i comandi per testare il tuo homework:

Per eseguire i test senza timeout usate uno dei comandi (il secondo elenca i tempi di esecuzione di ciascun test)

  • pytest test.py
  • pytest test.py -v --durations 0

Per eseguire uno specifico test invece che tutti

  • pytest -v text.py -k <parte del nome del test>

Esempio: pytest test.py -k 2_valori -v

Per eseguire i test in modo da applicare il timeout ed elencare gli N test più lenti (con T=timeout in secondi)

  • pytest -v test.py --timeout T --durations N

Per calcolare l'intricatezza (complessità ciclomatica) del codice (quello che consideriemo nella classifica è l'intricatezza MASSIMA)

  • radon cc -a -s --show-closures program.py

Per calcolare il tempo di esecuzione complessivo del programma facendo la media su 3 run da 5 test

  • python -u -m timeit -v -v -v -v -n 5  -r 3  -s 'from test import Test' 'Test.main()'

Per esaminare nel dettaglio i tempi di esecuzione del vostro programma per vedere quale parte è più lenta (se avete installato pytest-profiling)

  • pytest -rA -v --profile test.py

NOTA: nei log dei test che produco per Q2A ho modificato leggermente l'output del plugin pytest-profiling in modo da elencare le 20 funzioni in cui i test hanno speso più tempo.
Per ottenere lo stesso output potete modificare il file .../Anaconda/lib/python3.7/site-packages/pytest_profiling.py in modo che la riga 64 sia

pstats.Stats(self.combined, stream=terminalreporter).strip_dirs().sort_stats('tottime').print_stats(20)

invece che

pstats.Stats(self.combined, stream=terminalreporter).strip_dirs().sort_stats('cumulative').print_stats(20)

andrea.sterbini (207940 points)
755 1270 2377
by (208k points)

usate il comando conda invece di pip

AndreaGasparini (18850 points)
7 12 120
by (18.9k points)
Fixato, grazie :)
LorenzoChicca (1140 points)
5 6 18
by (1.1k points)
Professore non ho capito una cosa. L'intricatezza cosa sarebbe? Più l'esercizio è scritto in maniera semplice e più l'intricatezza è bassa? Deve essere alta o bassa?
edo.13 (930 points)
2 2 8
by (930 points)
in parole povere meno for, while, if, elif, try ecc.. ci stanno meglio è —> intricatezza più bassa
fc-dev (16450 points)
16 20 34
by (16.5k points)
@LorenzoChicca più è bassa meglio è
(A patto che il programma passi comunque i test)
E
Edward (25950 points)
4 4 172
by (26.0k points)

Hai installato anaconda? Se sì ti basta aprire Anaconda Prompt e digitare i comandi che trovi nella colonna Istallazione in Anaconda Prompt

Se usi Python senza anaconda invece puoi usare i comandi che iniziano con pip

Trovi tutti i comandi tra i software da installare.

Poi per eseguire i file, il professore indica degli esempi, dove ci sta scritto test.py, lo devi sostituire con test_01.py (perchè è così che si chiama il file che hai scaricato). Dove ci sta scritto program.py devi sostituirlo con program01.py. Inoltre quando li lanci devi essere nella directory dell'homework

a
andreasolda (740 points)
15 17 21
by (740 points)
Grazie mille a tutti per la celerità buona serata
plm (18850 points)
13 15 118
by (18.9k points)