2011-11-08 9 views
19

Ho scritto un parser HTML specializzato, che voglio testare con un paio di pagine web di esempio che ho scaricato.Come caricare i dati da un file, per un test unitario, in python?

In Java, ho utilizzato le risorse di classe per caricare i dati nei test di unità, senza dover fare affidamento su di essi in un particolare percorso del file system. C'è un modo per farlo in Python?

Ho trovato la funzione doctest.testfile(), ma sembra essere specifica per i doctest. Mi piacerebbe solo ottenere un handle di file, in un particolare file HTML, che è relativo al modulo corrente.

Grazie in anticipo per eventuali suggerimenti!

risposta

34

per caricare i dati da un file in un unittest, se il testdata è sulla stessa directory come Unittests, una soluzione:

TESTDATA_FILENAME = os.path.join(os.path.dirname(__file__), 'testdata.html') 


class MyTest(unittest.TestCase) 

    def setUp(self): 
     self.testdata = open(TESTDATA_FILENAME).read() 

    def test_something(self): 
     .... 
1

Immagino che il tuo compito si riduca a quello che è stato dato here per ottenere il file corrente. Quindi estendi il percorso per il percorso del tuo file HTML e open esso.

1

È inoltre possibile utilizzare un StringIO o cStringIO per simulare una stringa contenente il contenuto del file come file.

+2

Ya, ho pensato, ma richiederebbe che ho messo tutto il HTML in un file python come una stringa, che non mi piace in quanto è> 3k linee lungo – cberner

Problemi correlati