Sto scrivendo un pacchetto R (delftfews
) qui in ufficio. stiamo usando svUnit
per il test dell'unità.Come può uno script di test informare R CMD verificare che debba emettere un messaggio personalizzato?
il nostro processo per la descrizione di nuove funzionalità: definiamo nuovi test di unità, inizialmente contrassegnati come DEACTIVATED
; un blocco di test alla volta li attiviamo e implementiamo la funzione descritta dai test. quasi sempre abbiamo una piccola quantità di test DISATTIVATI, relativi a funzioni che potrebbero essere abbandonate o implementate.
il mio problema/domanda è: posso modificare il doSvUnit.R in modo che R CMD check pkg
emetta una NOTA (ad esempio un messaggio personalizzato "NOTA" anziché "OK") nel caso ci siano test disattivati?
fin d'ora, vediamo solo che i test attivi non danno errore:
.
.
* checking for unstated dependencies in tests ... OK
* checking tests ...
Running ‘doSvUnit.R’
OK
* checking PDF version of manual ... OK
che è bene se tutte le prove riescono, ma meno bene se ci sono i test saltati e sicuramente sbagliato se ci sono test falliti. In questo caso, mi piacerebbe davvero piace vedere una nota o un avviso come il seguente:
.
.
* checking for unstated dependencies in tests ... OK
* checking tests ...
Running ‘doSvUnit.R’
NOTE
6 test(s) were skipped.
WARNING
1 test(s) are failing.
* checking PDF version of manual ... OK
A partire da ora, dobbiamo aprire il doSvUnit.Rout
per verificare i reali risultati del test.
ho contattato due dei manutentori a r-fucina e CRAN e mi hanno puntato il sources of R, in particolare lo script testing.R
.
se ho ben capito, per rispondere a questa domanda abbiamo bisogno di patch il pacchetto tools
:
- script nella directory test sono chiamati utilizzando una chiamata
system
, - output (stdout e stderr) vai a un singolo file,
- ci sono due possibili risultati: ok o non ok,
così ho aperto un change request su R, proponendo qualcosa come codifica a bit lo stato di ritorno, bit-0 per ERRORE (come è ora), bit-1 per AVVISO, bit-2 per NOTA.
con la mia modifica, sarebbe facile produrre questo output:.
.
.
* checking for unstated dependencies in tests ... OK
* checking tests ...
Running ‘doSvUnit.R’
NOTE - please check doSvUnit.Rout.
WARNING - please check doSvUnit.Rout.
* checking PDF version of manual ... OK
Brian Ripley risponde: "Ci sono tuttavia diversi pacchetti con unità correttamente scritto test che lo fanno segnale come richiesto Si prega di prendere questa discussione altrove: R-bugs non è il posto dove porre domande ". e ha chiuso la richiesta di modifica.
qualcuno ha suggerimenti?
Cosa intendi per NOTA? Come in un suono dagli altoparlanti del computer? – I82Much
domanda modificata per spiegare NOTA, opposta a OK ma non così male come AVVERTENZA. – mariotomo
solo una nota: ho implementato una soluzione a un problema un po 'opposto, ovvero, essendo a conoscenza dei test unitari degli esempi nelle pagine di manuale. fa parte di svUnit. – mariotomo