Test unitario in gioco! Applicazione Framework che non richiede un server di test di prova

StackOverflow https://stackoverflow.com/questions/6367690

  •  28-10-2019
  •  | 
  •  

Domanda

Un'opzione per eseguire i miei test nel mio gioco! L'applicazione è eseguendo il comando play auto-test.

Uno dei modi in cui il gioco sembra identificare i test da eseguire è trovare tutte le classi di test con la Super Class play.test.UnitTest (o un altro gioco equivalente). Avere una classe di test si estende UnitTest Sembra venire con un po 'di sovraccarico come mostrato da questo pezzo di roba sputato nella console:

INFO   info, Starting C:\projects\testapp\.
WARN   warn, Declaring modules in application.conf is deprecated. Use dependencies.yml instead (module.secure)
INFO   info, Module secure is available (C:\play-1.2.1\modules\secure)
INFO   info, Module spring is available (C:\projects\testapp\.\modules\spring-1.0.1)
WARN   warn, Actually play.tmp is set to null. Set it to play.tmp=none
WARN   warn, You're running Play! in DEV mode
INFO   info, Connected to jdbc:h2:mem:play;MODE=MYSQL;LOCK_MODE=0
INFO   info, Application 'Test App' is now started !

Ovviamente avere un ambiente di riproduzione per i test che richiedono tale configurazione è utile, tuttavia, se ho una classe di test che teste il codice di produzione che esegue la logica che non richiede un ambiente di gioco che non voglio estendere UnitTest In modo che io possa evitare il sovraccarico di avviare un ambiente di gioco.

Se ho una classe di test che non si estende UnitTest quindi non viene eseguito dal comando play auto-test. C'è un modo per ottenere il play auto-test comanda di eseguire tutti i test indipendentemente dal fatto che estenda il gioco UnitTest?

Modificare: Qualcuno ha effettivamente sollevato un biglietto proprio per questo problema

È stato utile?

Soluzione

La risposta breve: no. Una risposta più lunga: no a meno che non si modifichi il codice nel framework. L'autotest è un'attività ANT che imposta il server e innesca il test, ma non sta usando l'attività ANT, quindi non rileverà (per impostazione predefinita) i test unitari "normali".

Hai due opzioni: o aggiungi un'attività aggiuntiva al file di Play ANT per eseguire i test unitari tramite l'attività (dovrai includere anche i barattoli pertinenti) o modifichi il codice utilizzato per avviare l'ambiente di test di riproduzione.

Entrambi implicano il cambiamento del framework a un certo livello. Anche se dando che stai usando il gioco, mi chiedo perché non dovresti avere tutti i tuoi test seguire il modello di gioco ...

Altri suggerimenti

Se questi test non richiedono alcun gioco! Funzione, perché non li metti su una biblioteca? Con il tuo esempio (Math Add): crea un pacchetto calcolatore.jar e crealo con Ant o Maven dopo aver eseguito i test. In questo modo, puoi usare la tua libreria in diversi giochi! Progetti (o primavera, montanti, ... se vuoi.

Non capisco davvero perché il problema stesso sia discutibile. Avere test unitari semplici e piccoli (anche nella parte web del tuo progetto) è la cosa più normale da fare. Il sovraccarico extra dell'inizializzazione del framework rallenta in modo significativo i tuoi prodotti di andata e ritorno se hai molti test. Come si può vedere nel biglietto, l'attuale soluzione è Rendi i test delle unità estendi org.junit.assert invece di play.test.unittest

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top