2016-05-14 21 views
8

Ho appena creato un nuovo progetto asp.net 5 usando il generatore di yeoman. Tutto ha funzionato fino ad ora, posso modificare e creare il progetto con Visual Studio Code.Come strutturare un progetto dnx di asp.net 5 con unit test in Visual Studio Code?

Ora voglio aggiungere test di unità, ma come sono strutturati in VS Code? In Visual Studio, il modo normale è aggiungere un nuovo progetto che contenga i test, descritto nello xUnit.net documentation. Tuttavia, in VS Code, non posso semplicemente aggiungere un progetto, posso? Dove metto i test? Il generatore di yeoman creerebbe anche un nuovo progetto, ma ciò significherebbe che dovrei avere una seconda istanza di VS Code in esecuzione e un secondo repository git o una strana struttura di cartelle.

+0

Finora ho risolto il problema passando a Visual Studio, ma sembra strano che il generatore predefinito non supporti questo. – looper

risposta

7

Non c'è nulla che ti impedisca di avere più progetti all'interno di una singola istanza di Visual Studio Code. La struttura di progetto predefinita per i progetti ASP.NET Core utilizza effettivamente più cartelle. Puoi vedere la struttura in azione in tutti i progetti ASP.NET Core su GitHub, ad es. il MVC one:

─ src 
    ├─ Microsoft.AspNetCore.Mvc 
    ├─ Microsoft.AspNetCore.Mvc.Abstractions 
    ├─ Microsoft.AspNetCore.Mvc.Core 
    └─ Microsoft.AspNetCore.Mvc.Razor 
─ test 
    ├─ Microsoft.AspNetCore.Mvc.Abstractions.Test 
    ├─ Microsoft.AspNetCore.Mvc.Core.Test 
    ├─ Microsoft.AspNetCore.Mvc.Razor.Test 
    └─ Microsoft.AspNetCore.Mvc.Test 

Ognuno di questi è una cartella con un progetto completo indipendente, con un proprio project.json che definisce il progetto e imposta le dipendenze.

Sfortunatamente, l'integrazione di Yeoman in VS Code non sembra consentire la realizzazione di progetti di scaffold in sottocartelle. Quindi, ciò che devi fare è creare da te la cartella src e test, impalcatura i tuoi progetti individualmente e spostarli nella cartella appropriata. Ad esempio, ho iniziato a creare una "Web Application vuota" con il nome Example, quindi ho creato un "Unit test project (xUnit.net)" con il nome Example.Test. Quindi, ho semplicemente trascinato Example nella cartella src e Example.Test in test.

Quindi la radice del progetto, e come tale la cartella che si apre con il codice VS, e dove si dovrebbe inizializzare il repository, è la directory in cui tali src e test cartelle vivono. Per esempio, il mio progetto (istituito con Git e configurazioni specifiche vscode) sarebbe ora apparire così:

─ .git 
─ .vscode 
─ src 
    └─ Example 
─ test 
    └─ Example.Test 
─ global.json 
─ README.md 

Il vantaggio di questa struttura è in realtà che è anche compatibile con quello di Visual Studio farebbe quando si crea una nuova soluzione.

+0

Se distribuisco la mia applicazione aspnet core in Azure con CI attraverso GitHub, come dovrei organizzare le mie cartelle? Se dispongo di src e test delle cartelle in un repository, in che modo Azure capisce da quale cartella eseguire lo script di distribuzione? –

+0

@DmitryGorshkov Lo stesso problema qui ... Come comunicare a Azure di selezionare un progetto in src per l'implementazione. Qualche idea? –