2013-05-11 7 views
7

Sto testando un progetto abbastanza grande (C#, VS2012) e ho bisogno di organizzare il test dell'unità nella gerarchia di test (ad es .: ora ho 43 casi di test). Ho davvero bisogno della gerarchia.Gerarchia delle categorie di test di Visual Studio 2012 (Test Explorer)

Ho già definito le categorie di test e l'esploratore di test mostra i casi di test in base ai tratti. Ho categorie in questo modo (un test ha diverse categorie)

  • TestCase01: MainTestType, SubTestType, SubsubTestType
  • ...
  • TestCase10: MainTestType, SubTestType, SubsubTestType
  • TestCase11: MainTestType, SubTestType2 , SubsubTestType2
  • ...
  • TestCase15: MainTestType, SubTestType2, SubsubTestType2

Definito in questo modo:

[TestMethod] 
    [TestCategory("MainTestType")] 
    [TestCategory("SubTestType")] 
    [TestCategory("SubsubTestType")] 
    public void MyTestCase() 
    { /* etc. */ 

Ma prova Explorer mostra la seguente:

  • MainTestType: tutti i test avendo categoria MainTestType
  • SubTestType: tutti i test avendo categoria SubTestType
  • ecc ..

Quindi mi manca davvero la gerarchia. Ho provato "Cat1 \ Cat2 \ Cat3" o anche con /. Ma nessuna gerarchia visualizzata. Sai come farlo, o un addon gratuito che può farlo per me?

Avrò anche bisogno di questo tipo di categorizzazione, perché eseguiamo spesso test dalla riga di comando e mstest.exe può eseguire test per una categoria (ad es. MainTestType o SubTestType). (Mi attengo al meglio perché metà del team usa vs2010). Ma la soluzione è sufficiente per vs2012.

Grazie in anticipo.

+1

Hai provato a utilizzare [Playlist] (http://blogs.msdn.com/b/visualstudioalm/archive/2013/01/30/first-ctp-for-visual-studio-update-2.aspx# playlist) da VS Update 2? Non so quanto sarà facile mantenere per te queste playlist, ma puoi provare se questo ti sarà di grande aiuto. – outcoldman

+0

A conoscere le playlist, ma sto cercando una catogerazione gerarchica (forse un addon). Ma forse è impossibile, ero solo curioso – cseppento

+0

Non l'ho visto prima. Puoi provare con R #, se R # Unit Test explorer può farlo o no, ma non credo che sia in grado di farlo. – outcoldman

risposta

6

Come quello che ho cercato non è supportato in questo momento, ho fatto la soluzione successiva:

  • costruire il progetto
  • corsa MSText per tutte le prove -> .trx uscita
  • semplici WinForms/wpf programma, che analizza .trx, ottiene i casi di test e li visualizza in una visualizzazione struttura
  • ora possiamo eseguire mstest da questa applicazione per il nodo selezionato -> crea .trx uscita (che può essere aperto in VS)

Ho usato .trx perché in questo modo non devo analizzare l'assembly, mstest.exe lo fa. categorie di prova sono fatti in questo modo:

[TestCategory("MainTestType")] 
[TestCategory("MainTestType/SubTestType")] 
[TestCategory("MainTestType/SubTestType/SubsubTestType")] 

Così il è la soluzione che è semplice, un solo binario e gli sviluppatori possono usare anche. Il problema con la playlist era che non erano nemmeno gerarchici.

+3

Puoi condividere la tua utilità, ad es. Su GitHub? –

1

Test Explorer mostra solo i gruppi che seguono il layout TestFilter/InnerTests.

La scheda Nuovo test Explorer è un contenitore generico. Utilizzando adattatori/addon/plugin specifici è possibile integrare altri test framework (NUnit, xUnit, Qunit, ...) in Test Explorer ... ma questi adattatori devono seguire l'interfaccia di test explorer.

Quindi, non è supportato nativamente dalla scheda Test Explorer, non ho trovato in passato un modo per estendere la scheda di esplorazione di prova.

Forse un altro framework di test consentirà di avere una gerarchia, ma questa sarà in un'altra scheda personalizzata e con un altro attributo (TestCategory è un attributo MSTest).

Solo per informazioni, è possibile alos coniugare tratti in Esplora finestra del test in questo modo

Trait:"MainTestType1" Trait:"SubTestType3" 
+0

Lo so, sto cercando un'organizzazione gerarchica (visiva) – cseppento

+0

Come ho detto, non esiste un punto di estensibilità nella scheda Test Explorer nativa. Supporta solo il raggruppamento e il filtraggio. – Cybermaxs

+0

Ok, quindi nessuna risposta, chiudere il thread (se sy can) – cseppento

1

per il raggruppamento in uso VS2010 .vsmdi file che possono essere aperti in Test List Editor.

Per quanto riguarda VS2012: miglioramenti

Visual Studio 2012 Update 1 http://www.microsoft.com/visualstudio/eng/visual-studio-update ha aggiunto per supportare sia il raggruppamento e filtraggio da Project e Tratti (categoria). L'utilizzo di queste caratteristiche è dettagliata in questo post del blog, http://blogs.msdn.com/b/visualstudioalm/archive/2012/11/09/how-to-manage-unit-tests-in-visual-studio-2012-update-1-part-1-using-traits-in-the-unit-test-explorer.aspx

Group e filtrare per classe è completata e sarà disponibile nell'aggiornamento 2.

suggerisco di spostare le vostre categorie di spazio dei nomi, quindi si sarebbe in grado per vedere la gerarchia piatta nella finestra TestView nella colonna FullClassName.

+0

Lo so, sto cercando un'organizzazione gerarchica (visiva) – cseppento

0

Si potrebbe imbrogliare un po 'rendendo il livello 2 una concatenazione dei valori dei primi due livelli. Quindi se il livello 1 è Animale e il livello 2 è Mammifero, potresti avere un tratto "Animal.Mammal". Nell'esploratore di test, otterresti un nodo per Level1 [Animal], un altro per Level1 [Plant] e uno per Level2 [Animal.Tiger]. Credo che il filtro supporti le corrispondenze di sottostringa, quindi questo è un modo per ordinarlo. Non si ottiene ancora una visualizzazione ad albero (anche se si era vincolati e determinati si poteva provare a estendere caratteri di pipe ascii come il vecchio comando dell'albero DOS).

Hai anche il problema che non puoi unire tratti diversi (in modo tale che tutti gli uccelli si trovino insieme nell'elenco in basso).

D'altra parte, imporre una struttura gerarchica pur consentendo n-tuple di tratti sarebbe imbarazzante. Dovrebbe limitare gli elementi a trovarsi in più di un percorso dalla cima della gerarchia, rilevare e riportare cicli, utilizzare un controllo ad albero sopra (o matrice con) cosa c'è ora. Inoltre, quando si effettua il refactoring del codice e si desidera mantenere i test disposti in parallelo, troppa struttura esistente potrebbe causare mal di testa.