Visual Studio Test Explorer – gyakori kérdések
Dinamikus tesztfelderítés
A Test Explorer nem észleli a dinamikusan definiált teszteimet (például elméleteket, egyéni adaptereket, egyéni tulajdonságokat és #ifdef utasításokat). Hogyan győződhetek meg arról, hogy felderíti ezeket a teszteket?
A projekt összeállítása az assembly alapú felderítés futtatásához.
A valós idejű tesztfelderítés forrásalapú tesztfelderítés. Nem tud olyan teszteket felderíteni, amelyek elméleteket, egyéni adaptereket, egyéni tulajdonságokat, #ifdef
utasításokat és egyebeket használnak, mert futásidőben vannak definiálva. A tesztek pontos kereséséhez buildre van szükség.
A Visual Studio 2017 15.6-os és újabb verzióiban a szerelvényalapú felderítés (a hagyományos felderítő) csak a buildek után fut. Ez a beállítás azt jelenti, hogy a valós idejű tesztfelderítés annyi tesztet talál, amennyit csak tud szerkesztés közben. Az összeállítás-alapú felderítés lehetővé teszi a dinamikusan definiált tesztek megjelenését az építés után.
A valós idejű tesztfelderítés javítja a válaszképességet, de így is teljes és pontos eredményeket kaphat a buildelés után.
Test Explorer plus (+) szimbólum
Mit jelent a Test Explorer felső sorában megjelenő plusz szimbólum?
A plusz (+) szimbólum azt jelzi, hogy szerkesztés után több teszt is felderíthető az összeállításalapú felderítés futtatásakor. Ez a szimbólum akkor jelenik meg, ha a projekt dinamikusan definiált teszteket észlel.
Valós idejű tesztfelderítés
A tesztek most már megjelennek a Test Explorerben, miközben begépelek, és nem kell felépítenem a projektemet. Mi változott?
Ezt a funkciót valós idejű tesztfelderítésnevezik. Roslyn-elemzőt használ a tesztek kereséséhez és a Test Explorer valós idejű feltöltéséhez anélkül, hogy a projekt összeállítására lenne szükség. A dinamikusan definiált tesztek, például elméletek vagy egyéni tulajdonságok tesztfelderítési viselkedéséről a cikk korábbi, dinamikus tesztfelderítési című cikkben talál további információt.
Kompatibilitás valós idejű tesztfelderítéshez
Mely nyelvek és tesztelési keretrendszerek használhatják a valós idejű tesztfelderítést?
A valós idejű tesztfelderítés csak a felügyelt nyelvek (C# és Visual Basic) esetében működik, mert a Roslyn fordítója segítségével készült. A valós idejű tesztfelderítés egyelőre csak az xUnit, az NUnit és az MSTest keretrendszerekhez működik.
Az Explorer naplóinak tesztelése
Hogyan kapcsolhatom be a naplókat a Test Explorerben?
Lépjen Eszközök>Beállítások>Tesztelés lapra, és keresse meg a naplózási szakaszt.
UWP-tesztfelderítés
Miért nincsenek felderítve a tesztjeim az UWP-projektekben, amíg üzembe nem helyezem az alkalmazást?
Az univerzális Windows-platform (UWP) tesztjei egy másik futtatókörnyezetet céloznak meg az alkalmazás üzembe helyezésekor. A UWP-projektek tesztjeinek pontos megkereséséhez nem csak a projektet kell felépítenie, hanem üzembe kell helyeznie is.
A Test Explorer rendezése
Hogyan működik a teszteredmények rendezése a hierarchia nézetben?
A hierarchianézet betűrendbe rendezi a teszteket, nem pedig az eredmények szerint. Az előző csoportosítási beállítások kimenetel szerint, majd betűrendben rendezték a teszteredményeket. Továbbra is engedélyezheti a rendezést eredmény szerint, ha a jobb gombbal az oszlopfejlécre kattint a Test Explorerben, engedélyezi az Állapot oszlopot, majd a Állapot oszlopfejlécet választva rendezést alkalmazhat az adott oszlopra. Visszajelzést adhat a tervezéssel kapcsolatban ebben a GitHub-ügyben: ,.
A Test Explorer hierarchia nézete
A hierarchia nézetben a szülőcsomópont-csoportosítások mellett vannak átment, sikertelen, kihagyott és nem futtatott ikonok. Mit jelentenek ezek az ikonok?
A Project, Névtérés Osztály csoportosítások melletti ikonok az egyes csoportosításokon belüli tesztek állapotát jelenítik meg. Lásd a következő táblázatot.
Keresés fájl elérési útja szerint
Miért nincs már fájlútvonal-szűrő a Test Explorer keresőmezőjében?
A Visual Studio 2017 15.7-es verziójában a Tesztböngésző keresőmezőjének fájlelérési útvonalszűrője el lett távolítva. Ez a funkció alacsony kihasználtságú volt, és a Test Explorer gyorsabban lekérheti a tesztelési módszereket, ha kihagyja. Ha ez a változás megszakítja a fejlesztési folyamatot, küldjön visszajelzést fejlesztői közösség.
Nem dokumentált felületek eltávolítása
A Visual Studio 2019-ben már nem találhatók teszteléssel kapcsolatos API-k. Mi változott?
A Visual Studio 2019-ben a korábban nyilvánosként megjelölt, de hivatalosan nem dokumentált tesztablak API-k el lesznek távolítva. A Visual Studio 2017-ben elavultként jelölték meg őket, hogy korai figyelmeztetést adjanak a bővítmények karbantartóinak. Tudomásunk szerint nagyon kevés bővítmény találta meg ezeket az API-kat, és függőséget vállalt rájuk. Ezek közé tartozik a IGroupByProvider
, IGroupByProvider<T>
, KeyComparer
, ISearchFilter
, ISearchFilterToken
, ISearchToken
és SearchFilterTokenType
.
Ha ez a módosítás hatással van a te bővítményedre, tudasd velünk, ha hibát jelentesz be a Fejlesztői Közösség-en.
A NuGet-tesztadapter referenciája
Miért nem futnak a tesztjeim a Visual Studio 2017 15.8-ban, annak ellenére, hogy felfedezték őket?
Minden tesztprojektnek tartalmaznia kell a .NET-tesztadapter NuGet-referenciáját a .csproj fájlban. Ha nem, a következő tesztkimenet jelenik meg a projekten, ha egy tesztadapter-bővítmény felderítése a buildelés után kezdődik, vagy ha a kiválasztott teszteket próbálja futtatni:
A tesztprojekt {} nem hivatkozik .NET NuGet-adapterre. Előfordulhat, hogy a tesztfelderítés vagy a végrehajtás nem működik ebben a projektben. Javasoljuk, hogy a megoldás minden .NET-tesztprojektjében hivatkozzon NuGet-tesztadapterekre.
A tesztadapter-bővítmények használata helyett a projekteknek NuGet-csomagok tesztadaptereket kell használniuk. Ez a követelmény jelentősen javítja a teljesítményt, és kevesebb problémát okoz a folyamatos integrációval kapcsolatban. A .NET tesztadapter-bővítmények elavulásáról a kibocsátási megjegyzésekbenolvashat bővebben.
Az UWP TestContainer nem található
Miért nem futnak az UWP-tesztjeim a Visual Studio 2017 15.7-es és újabb verziójában?
A legutóbbi UWP-tesztprojektek olyan buildtulajdonságot határoznak meg, amely jobb teljesítményt tesz lehetővé a tesztalkalmazások azonosításához. Ha van egy UWP-tesztprojektje, amely a Visual Studio 15.7-es verziója előtt lett inicializálva, akkor láthatja ezt a hibát a Kimenet>tesztekrészben:
System.AggregateException: Egy vagy több hiba történt. ---> System.InvalidOperationException: A következő TestContainer nem található {} a Microsoft.VisualStudio.TestWindow.Controller.TestContainerProvider <GetTestContainerAsync>d__61.MoveNext()
A hiba kijavítása:
Frissítse a tesztprojektek buildtulajdonságát az alábbi kóddal:
<UnitTestPlatformVersion Condition="'$(UnitTestPlatformVersion)' == ''">$(VisualStudioVersion)</UnitTestPlatformVersion>
Frissítse a TestPlatform SDK verzióját a következő kóddal:
<SDKReference Include="TestPlatform.Universal, Version=$(UnitTestPlatformVersion)" />
Előzetes verziójú funkciók
Hogyan használhatom az előzetes verziójú funkciókat a Visual Studio 2019-ben?
A Visual Studio 2019-ben az Eszközök>Beállítások>Környezeti>Előzetes verziójú funkciókelőzetes verziójú funkcióit választhatja.