In che modo MSTEST / Visual Studio 2008 Team Test decide l'ordine di esecuzione del metodo di prova?

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

  •  08-07-2019
  •  | 
  •  

Domanda

Avevo l'impressione che i metodi di test in una classe di test unitari sarebbero stati eseguiti nell'ordine che compaiono nel file di classe. Apparentemente questo non è vero. Inoltre, non sembra neppure basato esclusivamente sull'ordine alfabetico. In che modo MSTEST decide l'ordine di esecuzione?

EDIT: sono stato in grado di rintracciare la risposta dopo aver scavato un po '. Vedi sotto.

È stato utile?

Soluzione

Sono stato in grado di rintracciare la risposta.

Secondo Microsoft dipendente Guillermo Serrato :

  

MSTest esegue tutti i test   in modo sincrono, l'ordine è   non deterministico

Altri suggerimenti

Questo in realtà è semplicemente da fare: utilizzare questo collegamento Procedura: creare un ordine prova

L'ordinamento in Visualizzazione test o nell'editor dell'elenco di test li fa apparire come se avessi il controllo: è solo un prodotto secondario dell'implementazione. Non tentiamo in alcun modo di eseguirli effettivamente in un ordine specifico (siamo andati avanti e indietro su " consenti ordine " e " ordine casuale ").

Se hai davvero bisogno di un ordine, questo è lo scopo dei test ordinati. Sono disponibili in tutte le edizioni in cui è disponibile Unit Test: utilizzare il menu Test / Nuovo test oppure fare clic con il pulsante destro del mouse sul progetto di test e creare un test "ordinato" &

È molto semplice. Sto usando questo

C: > mstest /testcontainer:C:\MyTest.dll /resultsfile:C:\MyTestresults.xml

La logica è qui che di default mstest ti dà un file .trx. Quindi nel comando contro l'opzione [/ resultfile:] scrivi il nome del file dando l'estensione .xml. Quindi ho usato /resultsfile:C:\MyTestresults.xml invece di /resultsfile:C:\MyTestresults.trx

Questo funziona bene per me. Fammi sapere se funziona per te.

Nelle mie esperienze (ero un po 'difficile) Ho provato molte riflessioni sull'ordine di modifica degli ordini di esecuzione del metodo nel progetto MStest. Proverò a descrivere i passaggi.

  1. È necessario assicurarsi di eliminare i file .testrunconfig e .vsmdi predefiniti. Questi file creati da Visual Studio durante la creazione del progetto di test.

  2. Chiudi l'istanza di Visual Studio e riaprila.

  3. All'apertura di Visual Studio è necessario aprire l'Elenco test Edior, quindi creare il proprio elenco nella sezione Elenchi dei test. Dopo aver creato un nuovo elenco di test, questo dovrebbe essere vuoto.

  4. Vai alla sezione Tutti i test caricati, quindi trascina qualsiasi test nella sezione test appena creata con il tuo ordine scelto.

Quindi assicurati che la tua ultima sezione di test creata sia selezionata e puoi premere il test di esecuzione e voala è in esecuzione con il tuo ordine definito.

Non so che questo potrebbe bug o qualcosa del genere, ma funziona magicamente. Abbiamo provato questo metodo un paio di volte con il mio collega.

Buona chiusura

Problema: ciò che voglio fare è eseguire solo i test Web inclusi nel test ordinato. Sto utilizzando un test ordinato solo a tale scopo, quindi posso eseguire i test Web nell'ordine specifico in cui ho bisogno di eseguirli. Ho molti test Web, ma il test ordinato contiene un sottoinsieme di tali test Web , che vorrei eseguire. Soluzione: Un test ordinato viene utilizzato per eseguire una serie di test in un determinato ordine. Creare un elenco di test per gli ordinatori in Visual Studio / progetto di test. Dalla finestra della vista di prova (Test | Windows | Vista di prova), selezionare OrderedTest ed eseguirlo da lì (è possibile fare clic con il tasto destro del mouse e selezionare " Esegui selezione "). Il test ordinato eseguirà automaticamente tutti i tuoi test web inclusi in esso.

Sarai i risultati nella finestra dei risultati del test (Test | Windows | Risultati del test); fai doppio clic su OrderedTest e vedrai i risultati dettagliati per ognuno dei tuoi test web lì. Puoi fare doppio clic su ogni test web e potrai vedere risultati dettagliati per ciascuno di essi.

Esistono molti modi per ordinare i test in VS. Usa la vista di prova e aggiungi colonne e ordini extra. Uso i file VSMDI e questo li esegue nell'ordine specificato in essi.

Non dovrebbe importare in quale ordine vengono eseguiti ... se i tuoi test dipendono da un altro test in esecuzione per primi, i tuoi test sono imperfetti :-)

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