Ci scusiamo per la domanda di base. Ho usato il metodo unittest per controllare i miei modelli in uno script. Ora, la mia domanda è: come posso chiamare questo script da un altro file e salvare i risultati dei test. Qui di seguito è il mio codice di esempio:Chiama un python unittest da un altro script ed esporta tutti i messaggi di errore
**model_test.py**
import unittest
import model_eq #script has models
class modelOutputTest(unittest.TestCase):
def setUp(self):
#####Pre-defined inputs########
self.dsed_in=[1,2]
#####Pre-defined outputs########
self.msed_out=[6,24]
#####TestCase run variables########
self.tot_iter=len(self.a_in)
def testMsed(self):
for i in range(self.tot_iter):
fun = model_eq.msed(self.dsed_in[i],self.a_in[i],self.pb_in[i])
value = self.msed_out[i]
testFailureMessage = "Test of function name: %s iteration: %i expected: %i != calculated: %i" % ("msed",i,value,fun)
self.assertEqual(round(fun,3),round(self.msed_out[i],3),testFailureMessage)
if __name__ == '__main__':
unittest.main()
Il passo successivo che voglio è quello di creare un altro script chiamato test_page.py, che esegue lo script prova di unità e salvare i risultati in una variabile (ho bisogno di inviare i risultati ad una pagina web) .
test_page.py
from model_test.py import *
a=modelOutputTest.testMsed()
Tuttavia, ho ricevuto i seguenti errori.
Traceback (most recent call last):
File "D:\Dropbox\AppPest\rice\Rice_unittest.py", line 16, in <module>
a= RiceOutputTest.testMsed()
TypeError: unbound method testMsed() must be called with RiceOutputTest instance as first argument (got nothing instead)
Qualcuno può darmi qualche suggerimento? Grazie!
Grazie per l'aiuto di Nix! La mia prossima domanda è: ho bisogno di testare la funzione con due casi dati in un ciclo. È pubblicato here.
Si dovrebbe dividere la modifica in una nuova domanda. – Nix
Perché hai 'return a' nel tuo ciclo for? Dovresti rimuoverlo. – Nix
Ho spostato una nuova domanda qui. http://stackoverflow.com/questions/14285010/python-unit-testing-a-loop-function –