Porady: wdrożenie plików na potrzeby testów
Opublikowano: czerwiec 2016
Zanim zostanie wykonany test, test i aplikacja muszą być skopiowane do lokalizacji, gdzie można je uruchomić, wraz z innymi zestawami, do których się one odwołują. Badanie zazwyczaj wymaga również dodatkowych plików, takich jak dane z badań, pliki konfiguracyjne, bazy danych i jawnie załadowane zestawy. Aby udostępnić te dodatkowe pliki do testów, należy określić, że mają one zostać wdrożone.
Gdzie uruchamiane są testy?
Program Visual Studio można uruchomić testy w kilku miejscach:
w folderze wyjściowym kompilacji, zwykle < Projekt > \bin\Debug.
w folderze lokalnym testu wdrożenia na tym samym komputerze co kompilacji.
Na komputerze zdalnym. Zdalne wdrażanie służy do testowania rozproszonej lub treści sieci web, aplikacji i aplikacji działających na platformie określonego. Dla wdrożenia zdalnego należy zdefiniować kontroler testów i agentów testowych, i zazwyczaj uruchomić testy w środowisku laboratoryjnym. Aby uzyskać więcej informacji o wdrożeniu zdalnego, zobacz Porady: przeprowadzanie testu z wykorzystaniem kontrolerów testów i agentów testowych.
Jak wdrożyć pliki testowe dla lokalnego testu?
Oto najlepszy sposób:
Skopiuj pliki w katalogu docelowym kompilacji w ramach procesu kompilacji.
Jeśli są specyficzne dla jednego projektu testów, należy je dołączyć jako pliki zawartości w projekcie testów programu Visual Studio. Zaznacz je w oknie Solution Explorer i ustaw właściwość Kopiuj do katalogu wyjściowego, aby przeprowadzić Kopiowanie, jeśli nowsze.
W przeciwnym razie zdefiniuj zadanie po kompilacji, aby skopiować pliki do katalogu wyjściowego kompilacji. Na przykład:
xcopy /Y /S "$(SolutionDir)SharedFiles\*" "$(TargetDir)"
Otwórz okno właściwości projektu testu. W projekcie w języku C# otwórz stronę Zdarzenia kompilacji. W projekcie w języku Visual Basic otwórz stronę Kompilacja i wybierz polecenie Zdarzenia kompilacji. Dodaj polecenie kopiowania do pola Zdarzenie po kompilacji.
Użyj DeploymentItemAttribute dla metod testów lub klasy testu można określić pliki i foldery, które powinny zostać skopiowane z katalogu wyjściowego kompilacji do katalogu wdrożenia.
[TestClass] class TestClass1 { [TestMethod] [DeploymentItem("source", "targetFolder")] public void Test1() { string testData = System.IO.File.ReadAllText(@"targetFolder\source"); ... } }
<TestClass()> _ Public Class UnitTest1 <TestMethod()> _ <DeploymentItem("source", "targetFolder")> _ Sub TestMethod1() Dim testData As String = _ System.IO.File.ReadAllText(@"targetFolder\source") ... End Sub End Class
źródła jest plik lub katalog do skopiowania. Ścieżka może być ścieżką bezwzględną, lub względną dla katalogu danych wyjściowych kompilacji.
targetFolder jest opcjonalna. Jest to katalog, do którego zostanie skopiowana zawartość pliku lub katalogu źródłowego. Ścieżka może być ścieżką bezwzględną, lub względną dla katalogu wdrażania. Wartością domyślną jest ".", katalog wdrażania.
Uwaga
targetFolder zawsze jest katalogiem, nie ścieżkę do pliku.Nie można zmienić nazwy pliku za pomocą DeploymentItem.
Atrybut można użyć jako tyle razy, ile ma i można zastosować do metod testowych lub testowania klasy.
Po wybraniu zestaw testów do uruchomienia wszystkie elementy, które są określone w ich atrybutów DeploymentItem są kopiowane, zanim rozpocznie się uruchomić test.
Rozważ uruchomienie testy jednostkowe bezpośrednio w katalogu wyjściowym kompilacji, tak aby testy działały szybciej. Jest to szczególnie przydatne na serwerze kompilacji, po sprawdzeniu w testach.
W tym celu dodać plik *.runsettings do rozwiązania, należy uwzględnić <DeploymentEnabled>False</DeploymentEnabled>, i wybierz plik w testu, ustawień testu menu. Ten sam efekt pojawia się w każdym przebieg testu, w którym DeploymentItemAttribute nie jest używany.
Nie można jednak uniknąć przy użyciu folder wdrażania, jeśli używasz *.testsettings pliku, który jest wymagany dla testów sieci web i obciążenia, kodowanych testów interfejsu użytkownika, a dowolny test, w którym wdrażania aplikacji na komputerach zdalnych.
Co to jest plik *.runsettings?
Plik o dowolnej nazwie i rozszerzenie nazwy pliku ".runsettings". Służy do konfigurowania testów jednostkowych dla niektórych celów. Jeśli chcesz utworzyć, skopiuj przykład z Konfigurowanie testów jednostkowych przy użyciu pliku runsettings. Umieść je w folderze rozwiązania, a następnie wprowadź active za pomocą testu > Przetestuj ustawienia menu.
Kiedy używać pliku *.testsettings?
Element pliku *.testsettings (oznacza to, że plik o dowolnej nazwie i rozszerzenie nazwy pliku ".testsettings") jest starsza zamiast *.runsettings. O jego utworzenie, należy użyć elementu menu w testu > Przetestuj ustawienia menu. Zapisz plik w folderze rozwiązania, a następnie uaktywnić przy użyciu testu > menu Ustawienia testu.
Unikaj używania *.testsettings plik, jeśli to możliwe, ponieważ ułatwia testy działać wolniej i jest niezgodny z struktur testów innych firm. Nie trzeba go dla testów jednostkowych zwykły. Jednak w takich sytuacjach:
Przeprowadzasz testy wydajności sieci Web i testy obciążenia lub kodowane testy interfejsu użytkownika
Przeprowadzasz wykonywanie testów aplikacji rozproszonej na więcej niż jednym komputerze
Chcesz zbierać dodatkowe dane diagnostyczne z Twoich testów
Korzystając z pliku *.testsettings, zestawy testowe i aplikacji produktu zawsze zostaną skopiowane folder wdrażania.
Możesz określić pliki i katalogi danych na stronie Wdrażanie edytora .testsettings. Zostaną one skopiowane do folderu wdrażania przed każdym testem. Ścieżki elementów określone na tej stronie są zawsze względne wobec katalogu rozwiązania i zawsze są wdrażane w folderze wdrażania obok zestawów aplikacji i testów.
Jeśli chcesz używać ścieżek bezwzględnych lub określić inny katalog docelowy, otwórz plik .testsettings za pomocą edytora XML i wstaw fragment podobny do tego:
<Deployment>
<DeploymentItem filename="C:\MyTestData\TestData.mdb"
outputDirectory="D:\TestDB\" />
</Deployment>
Ścieżka outputDirectory może być ścieżką bezwzględną lub względną dla katalogu wdrażania.
Kiedy jest używany oddzielny foldera wdrażania?
Po uruchomieniu testów przy użyciu programu Visual Studio folder wdrażania jest tworzony w węźle TestResults w folderze rozwiązania.
Folder wdrażane są używane, gdy metody badania lub klasy w przypadku testu ma atrybut DeploymentItem, lub jeśli używasz *.testsettings pliku.
Jeśli jest używany folder wdrażania, następujące pliki i foldery są kopiowane do folderu wdrażania przed wykonaniem testów:
Plik zestawu testów
Wszystkie zależne zestawy
Pliki i katalogi, które zostało podane jawnie, za pomocą DeploymentItemAttribute lub *.testsettings pliku
Foldery wdrażania dla uruchamiania lokalnego testu
Kiedy są pliki rozwinięty i w jakiej kolejności?
W przebiegu testowym wszystkie pliki, które mają być wdrożone, są kopiowane przed rozpoczęciem testów. Uruchomienie testu jest serią badań zainicjowanych przez jedno polecenie lub zaplanowane zdarzenie. Oznacza to, że jeśli określisz plik danych przeznaczony do wdrożenia dla konkretnej metody testów, będzie on również dostępny dla każdego innego testu wykonywanego w tym samym uruchomieniu.
Następujące elementy są kopiowane w ukazanej kolejności. Elementy, które są kopiowane później, zastąpią te, które zostały skopiowane wcześniej, jeśli mają taką samą nazwę.
Elementy określone za pomocą klasy DeploymentItemAttribute
Zależności. Na przykład pliki konfiguracyjne aplikacji i zestawy zależne.
Elementy zaznaczone w *.testsettingsplik, jeśli używasz.
Zainstrumentowane pliki binarne. Na przykład zestawy, które zostały zainstrumentowane, aby umożliwić pokrycie kodu lub działanie funkcji IntelliTrace.
Jeśli używasz instrumentacji miejscowej, pliki binarne są najpierw instrumentowane, a następnie skopiowanie do katalogu wdrażania; w przeciwnym razie są najpierw kopiowane i następnie instrumentowane. Instrumentacja miejscowa jest ustawieniem domyślnym dla testów, które są uruchamiane lokalnie.
Plik lub pliki, które obejmują test. Należą do nich zestawy badawcze, do testów jednostkowych; pliki tekstowe lub mht, do obsługi testów ręcznych; lub inne typy plików dla innych typów testów, takich jak testy rodzajowe.
Co znajduje się w katalogu TestResults?
Folder przebiegu testu. TestResults zawiera jeden folder dla każdego przebiegu testu, który został uruchomiony. Jego nazwa zawiera godzinę, o której został utworzony.
Jeśli określono konfiguracji i oczyszczanie skrypty w pliku *.testsettings, folder testu zawiera tych skryptów.
Zewnętrznie. Folder dla każdego przebiegu testowego zawiera folder o nazwie Out. Folder wyjściowy to rzeczywisty folder wdrażania, do którego zespoły i inne pliki wdrażania są kopiowane w chwili rozpoczęcia przebiegu testu.
In. Wyniki pokrycia kodu i niektórych innych wyników testów są przechowywane w folderze o nazwie In.
Zobacz też
DeploymentItemAttribute
Wprowadzanie ustawień testów w programie Visual Studio
Instrumentacja i ponowne podpisywanie zespołów