Quando si scrive codice che interagisce con risorse esterne (come l'utilizzo di un servizio Web o altre operazioni di rete), spesso struttura le classi in modo che possa essere "stub" anche utilizzando un file o qualche altro metodo di input. Quindi, finisco per usare l'implementazione stub per testare altre parti del sistema e poi uno o due test che testano specificamente chiamando il servizio web.Escludere alcuni test JUnit dalla suite di test automatizzata
Il problema è che non voglio chiamare questi servizi esterni né da Jenkins né quando eseguo tutti i test per il mio progetto (ad esempio "gradle test"). Alcuni servizi hanno effetti collaterali o potrebbero non essere accessibili a tutti gli sviluppatori.
In questo momento annoto solo e quindi commento nuovamente l'annotazione @Test su questi particolari metodi di test per abilitarli e disabilitarli. Abilitalo, eseguilo manualmente per controllarlo, quindi ricordati di commentarlo nuovamente.
// Uncomment to test external service manually
//@Test
public void testSomethingExternal() {
C'è un modo migliore per farlo?
EDIT: Per unit testing manuale, io uso Eclipse e sono in grado di basta fare clic destro sul metodo di prova e fare Run As -> test JUnit. Ma questo non funziona senza l'annotazione (non commentata).
Non è chiaro se si desideri un "profilo" automatico dei test delle unità che è possibile alternare tra loro o semplicemente un modo più semplice di attivarli manualmente durante lo sviluppo. – chrylis
@chrylis Quello che stavo cercando di fare in origine era di eseguire un test individuale. Tuttavia, l'idea di creare un profilo separato per questi tipi di test è probabilmente un approccio migliore. Anche se vorrei ancora la possibilità di eseguire alcuni test separatamente (nei casi in cui ci sono effetti collaterali, ad esempio - che cerco di evitare ma a volte è inevitabile). –