2013-10-11 12 views
11

Il py.test assert docs diconopy.test: formato non è riuscita affermare e stampa personalizzato messaggio

... se si specifica un messaggio con l'affermazione in questo modo:

assert a % 2 == 0, "value was odd, should be even"

quindi nessuna affermazione l'introspezione avviene in assoluto e il messaggio verrà semplicemente mostrato nel traceback. incorporato modulo

di Python unittest fa anche questo, a meno che tuoi TestCase set longMessage = True.

Avere la bella formattazione di asserzione è facile da test per lo sviluppatore, mentre il messaggio personalizzato è più business-requirement/human friendly. Il messaggio personalizzato è particolarmente utile quando non si è nel contesto del test, cioè risponde a ciò che l'affermazione sta facendo lì, senza dover guardare il codice. Quindi, mi piacerebbe avere entrambi i messaggi.

C'è un modo per ottenere py.test è bello asserire l'introspezione e la formattazione E stampare un messaggio personalizzato?

risposta

2

Non c'è un modo per abilitare le informazioni supplementari di asserzione più un messaggio al momento. Penso che potrebbe essere aggiunto, ma non sono sicuro di quanto sia necessario uno sforzo. Finora questo problema non è venuto a mia conoscenza. Sentiti libero di presentare un problema o prova una richiesta di pull. Si noti, tuttavia, che se si passa attraverso lo sforzo di scrivere un messaggio personalizzato leggibile dall'uomo, probabilmente si possono anche inserire alcuni valori interessanti dall'espressione.

+0

"probabilmente puoi anche inserire alcuni valori interessanti dall'espressione" - sicuramente, ma a costo di ripetermi, e non ottengo la bella formattazione. Ad ogni modo, seguirò [il progetto BitBucket] (https://bitbucket.org/hpk42/pytest/). – Bluu

+0

Non ho visto alcuna discussione su questo nella pagina di bitbucket per py.test. Era l'aggiunta di questo mai discusso? –

+0

@ durden2.0 no, è caduto dal mio radar, mentre mi sono accontentato di ripetermi (e un output leggermente meno espressivo). – Bluu