2016-05-14 10 views
8

Właśnie stworzyłem nowy projekt asp.net 5 przy użyciu generatora yomanów. Wszystko działało dobrze, mogę edytować i budować projekt za pomocą kodu Visual Studio.Jak skonstruować projekt asp.net 5 dnx za pomocą testów jednostkowych w kodzie Visual Studio?

Teraz chcę dodać testy jednostkowe, ale w jaki sposób są one ustrukturyzowane w kodzie VS? W Visual Studio normalnym sposobem jest dodanie nowego projektu zawierającego testy opisane w xUnit.net documentation. Jednak w Kodzie VS nie mogę po prostu dodać projektu, czy mogę? Gdzie mogę umieścić testy? Generator Yeomana również utworzyłby nowy projekt, ale to oznaczałoby, że musiałbym mieć uruchomioną drugą instancję VS Code i drugie repozytorium git lub dziwną strukturę folderów.

+0

Do tej pory rozwiązałem problem, przechodząc do Visual Studio, ale wydaje się dziwne, że generator domyślny nie obsługuje tego. – looper

Odpowiedz

7

Nic nie stoi na przeszkodzie, aby mieć wiele projektów w ramach jednego wystąpienia kodu Visual Studio. Domyślna struktura projektu dla projektów ASP.NET Core faktycznie korzysta z wielu folderów. Możesz zobaczyć tę strukturę w akcji we wszystkich projektach ASP.NET Core na GitHub, np. 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 

Każdy z nich jest folder z pełnym niezależnym projektem, z własnym project.json który określa projekt i konfiguruje zależności.

Niestety, integracja Yeoman w kodzie VS nie pozwala na umieszczanie projektów rusztowań w podfolderach. Musisz więc samodzielnie utworzyć folder src i test, samodzielnie zarchiwizować projekty i przenieść je do odpowiedniego folderu. Na przykład zacząłem tworzyć "Pustą aplikację internetową" o nazwie Example, a następnie utworzyłem "Projekt testu jednostkowego (xUnit.net)" o nazwie Example.Test. Następnie po prostu przeciągnąłem Example do folderu src i Example.Test do test.

Korzeń projektu, a więc folder otwierany za pomocą kodu VS, a także miejsce inicjowania repozytorium, to katalog, w którym znajdują się foldery src i test. Na przykład mój projekt (konfiguracja z Git i vscode konkretnych configs) będzie teraz wyglądać tak:

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

zaletą tej konstrukcji jest rzeczywiście, że jest to również zgodne z tym, co zrobi Visual Studio podczas tworzenia nowego rozwiązania.

+0

Czy mogę wdrożyć moją podstawową aplikację ASPNET na platformie Azure za pomocą CI przez GitHub, jak mam uporządkować swoje foldery? Jeśli mam repozytorium src i foldery testowe w jednym repozycie, to w jaki sposób Azure rozumie, z jakiego foldera uruchomić skrypt wdrażania? –

+0

@DmitryGorshkov Ten sam problem tutaj ... Jak powiedzieć Azure, aby wybrał projekt w src do wdrożenia. Dowolny pomysł? –

Powiązane problemy