Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Testy jednotek můžete psát a spouštět v sadě Visual Studio pomocí některých oblíbených architektur JavaScriptu, aniž byste museli přepnout na příkazový řádek. Podporují se projekty Node.js i ASP.NET Core.
Podporované architektury jsou:
- Mocha (mochajs.org)
- Jasmine (Jasmine.github.io)
- Páska (github.com/substack/tape)
- Jest (jestjs.io)
- Vitest (vitest.dev)
Zapište jednotkové testy pro projekt založený na rozhraní příkazového řádku (.esproj)
Projekty založené na rozhraní příkazového řádku podporované v sadě Visual Studio 2022, fungují s Průzkumníkem testů. Vitest je integrovaná testovací architektura pro projekty React a Vue (dříve Jest) a Karma a Jasmine se používají pro projekty Angular. Ve výchozím nastavení budete moct spouštět výchozí testy poskytované jednotlivými architekturami a také všechny další testy, které napíšete. Stačí v Průzkumníku testů stisknout tlačítko Spustit. Pokud ještě nemáte otevřený Průzkumník testů, najdete ho tak, že v řádku nabídek vyberete Test>Průzkumník testů.
Pokud chcete spustit testy jednotek z příkazového řádku, klikněte pravým tlačítkem na projekt v Průzkumníku řešení, zvolte Otevřít v terminálua spusťte příkaz specifický pro typ testu.
Pro informace o nastavení jednotkových testů viz následující:
- Testování pomocí Vitest
- Testování Reactu pomocí Jestu
- Angular testování
- Testování Vue.js
Tady je také uveden jednoduchý příklad. K úplným informacím však použijte předchozí odkazy.
Přidejte jednotkový test (.esproj)
Následující příklad vychází ze šablony projektu TypeScript React poskytované v sadě Visual Studio 2022 verze 17.12 nebo novější, což je šablona samostatného projektu TypeScript React. U Vue a Angular jsou kroky podobné.
V Průzkumníku řešení klikněte pravým tlačítkem na projekt React a zvolte Upravit soubor projektu.
Ujistěte se, že v souboru .esproj jsou k dispozici následující vlastnosti se zobrazenými hodnotami.
<PropertyGroup> <JavaScriptTestRoot>src\</JavaScriptTestRoot> <JavaScriptTestFramework>Vitest</JavaScriptTestFramework> </PropertyGroup>Tento příklad určuje Vitest jako testovací architekturu. Místo toho můžete zadat Mocha, Tape, Jasmine nebo Jest.
Prvek
JavaScriptTestRooturčuje, že testy jednotek budou ve složce src kořenového adresáře projektu. Je také běžné zadat složku test .V Průzkumníku řešení klikněte pravým tlačítkem na uzel npm a zvolte Nainstalovat nové balíčky npm.
Pomocí dialogového okna instalace balíčku npm nainstalujte následující balíčky npm:
- vitest
Tento balíček se přidá do souboru package.json v rámci závislostí.
Poznámka
Pokud používáte jest, je vyžadován balíček jest-editor-support npm stejně jako balíček jest.
Do package.jsonpřidejte oddíl
testna konec oddíluscripts:"scripts": { ... "test": "vitest" },V Průzkumníku řešení klikněte pravým tlačítkem na složku src a zvolte Přidat>Nová položka, poté přidejte nový soubor jménem App.test.tsx.
Tím se nový soubor přidá do složky src.
Do app.test.tsxpřidejte následující kód.
import { describe, it, expect } from 'vitest'; describe('testAsuite', () => { it('testA1', async () => { expect(2).toBe(2); }); });Otevřete Průzkumníka testů (zvolte Test>Průzkumník testů) a Visual Studio vyhledá a zobrazí testy. Pokud se testy nezobrazují zpočátku, znovu sestavte projekt a aktualizujte seznam.
Poznámka
Pro TypeScript nepoužívejte
outfilemožnost v tsconfig.json, protože Průzkumník testů nebude moct najít jednotkové testy. Můžete použít možnostoutdir, ale ujistěte se, že konfigurační soubory, jako jsoupackage.jsonatsconfig.json, jsou v kořenovém adresáři projektu.Důležitý
Pokud výstup testů v okně Výstup zobrazuje
ReadOnlySpanchybu při zjišťování testů, použijte následující alternativní řešení známého problému nástroje MSBuild. Pro Visual Studio 2022 otevřete složku Program Files\Microsoft Visual Studio\2022\<version>\Common7\IDE\Extensions\TestPlatform a přejmenujte System.Memory.dll na jiný název. Tato oprava umožňuje zjišťování testů.
Spouštění testů (.esproj)
Testy můžete spustit kliknutím na odkaz Spustit vše v Průzkumníku testů. Nebo můžete testy spustit tak, že vyberete jeden nebo více testů nebo skupin, pravým tlačítkem myši kliknete a v místní nabídce vyberete Spustit. Testy běží na pozadí a Průzkumník testů se automaticky aktualizuje a zobrazí výsledky. Kromě toho můžete také ladit vybrané testy tak, že kliknete pravým tlačítkem myši a vyberete Ladění.
Následující obrázek ukazuje příklad s přidaným druhým jednotkovým testem.
U některých architektur testů jednotek se testy jednotek obvykle spouštějí proti vygenerovanému kódu JavaScriptu.
Poznámka
Ve většině scénářů TypeScriptu můžete ladit jednotkový test nastavením zarážky v TypeScriptovém kódu, kliknutím pravým tlačítkem myši na test v Test Exploreru a zvolením Ladění. Ve složitějších scénářích, například v některých scénářích, které používají zdrojové mapy, může být obtížné narazit na zarážky v kódu TypeScriptu. Jako alternativní řešení zkuste použít klíčové slovo debugger.
Poznámka
Testy profilace a pokrytí kódu se v současné době nepodporují.
Spuštění testů jednotek z příkazového řádku pro projekt založený na rozhraní příkazového řádku (.esproj)
Testy jednotek můžete spouštět přímo z příkazového řádku pro architekturu testování jednotek stejným způsobem jako v případě, že nepoužíváte Visual Studio.
Můžete se také rozhodnout spustit testy z příkazového řádku pomocí vstest.console. Můžete například chtít použít vstest.console k zachování konzistence s testy jednotek jazyka C# nebo ke spuštění v Azure DevOps. Použijte následující příkaz, ale nahraďte MyProj názvem projektu.
vstest.console .\MyProj.esproj /TestAdapterPath:"C:\Program Files\Microsoft Visual Studio\18\Enterprise\Common7\IDE\Extensions\Microsoft\JavaScript"
vstest.console .\MyProj.esproj /TestAdapterPath:"C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\Extensions\Microsoft\JavaScript"
Psát jednotkové testy pro ASP.NET Core
Pokud chcete do projektu ASP.NET Core přidat podporu testování částí JavaScriptu a TypeScriptu, musíte do projektu přidat podporu TypeScriptu, npm a testování jednotek zahrnutím požadovaných balíčků NuGet.
Přidání jednotkového testu (ASP.NET Core)
Následující příklad je založený na šabloně projektu ASP.NET Core Model-View-Controller a zahrnuje přidání testu jednotek Jest nebo Mocha.
Vytvoření ASP.NET základního modelu –View-Controller projektu
Příklad projektu najdete v tématu Přidání TypeScriptu do existující aplikace ASP.NET Core. Pro podporu testování jednotek doporučujeme začít se standardní šablonou projektu ASP.NET Core.
V Průzkumníku řešení (pravé podokno) klikněte pravým tlačítkem na uzel projektu ASP.NET Core a vyberte Spravovat balíčky NuGet pro řešení.
Na kartě Procházet vyhledejte následující balíčky a nainstalujte je:
Balíček NuGet použijte k přidání podpory TypeScriptu místo balíčku npm TypeScript.
V Průzkumníku řešení klikněte pravým tlačítkem na uzel projektu a zvolte Upravit soubor projektu.
Soubor .csproj se otevře v prostředí Visual Studio.
Do souboru .csproj v elementu
PropertyGrouppřidejte následující prvky.Tento příklad určuje jako testovací architekturu Jest nebo Mocha. Můžete místo toho specifikovat pásku nebo Jasmine.
Prvek
JavaScriptTestRooturčuje, že jednotkové testy budou ve složce testy v kořenovém adresáři projektu.<PropertyGroup> ... <JavaScriptTestRoot>tests\</JavaScriptTestRoot> <JavaScriptTestFramework>Jest</JavaScriptTestFramework> <GenerateProgramFile>false</GenerateProgramFile> </PropertyGroup>V Průzkumníku řešení klikněte pravým tlačítkem na uzel projektu ASP.NET Core a vyberte Přidat > Nová položka. Zvolte konfigurační soubor JSONTypeScriptu a pak vyberte Přidat.
Pokud nevidíte všechny šablony položek, vyberte Zobrazit všechny šablonya pak zvolte šablonu položky.
Visual Studio přidá soubor tsconfig.json do kořenového adresáře projektu. Tento soubor můžete použít k konfiguraci možností pro kompilátor TypeScript.
Otevřete tsconfig.json a nahraďte výchozí kód následujícím kódem:
{ "compileOnSave": true, "compilerOptions": { "noImplicitAny": false, "noEmitOnError": true, "removeComments": false, "sourceMap": true, "target": "es5", "outDir": "wwwroot/js" }, "include": [ "scripts/**/*" ], "exclude": [ "node_modules", "tests" ] }Pro Jest, pokud chcete zkompilovat testy TypeScriptu do JavaScriptu, odeberte složku testy z oddílu vyloučit.
Ve složce skriptů je místo, kam můžete vložit kód TypeScriptu pro vaši aplikaci. Příklad projektu, který přidává kód, najdete v tématu Přidání TypeScriptu do existující aplikace ASP.NET Core.
Klikněte pravým tlačítkem na projekt v Průzkumníku řešení a zvolte Přidat>Nová položka (nebo stiskněte Ctrl + SHIFT + A). Pomocí vyhledávacího pole vyhledejte soubor npm, zvolte konfigurační soubor npm, použijte výchozí název a klikněte na Přidat.
Do kořenového adresáře projektu se přidá soubor package.json.
V Průzkumníku řešení klikněte pravým tlačítkem na uzel npm v části Závislosti a zvolte Nainstalovat nové balíčky npm.
Poznámka
V některých scénářích nemusí Průzkumník řešení zobrazit uzel npm kvůli známému problému popsanému zde. Pokud potřebujete zobrazit uzel npm, můžete projekt uvolnit (klikněte pravým tlačítkem myši na projekt a zvolte Uvolnit projekt) a pak projekt znovu načtěte, aby se uzel npm znovu zobrazil. Alternativně můžete přidat položky balíčku pro package.json a nainstalovat sestavením projektu.
Pomocí dialogového okna instalace balíčku npm nainstalujte následující balíčky npm:
Do package.jsonpřidejte oddíl
testna konec oddíluscripts:V Průzkumníku řešení klikněte pravým tlačítkem na složku test a zvolte Přidat>Nová položka, a poté přidejte nový soubor nazvaný App.test.tsx.
Tím se nový soubor přidá do složky test.
Do app.test.tsxpřidejte následující kód.
Otevřete Průzkumníka testů (zvolte Test>Windows>Průzkumník testů) a Visual Studio vyhledá a zobrazí testy. Pokud se testy nezobrazují zpočátku, znovu sestavte projekt a aktualizujte seznam. Následující obrázek znázorňuje příklad Jest se dvěma různými soubory testů jednotek.
Poznámka
Pro TypeScript nepoužívejte
outfilemožnost v tsconfig.json, protože Průzkumník testů nebude moct najít jednotkové testy. Můžete použít možnostoutdir, ale ujistěte se, že konfigurační soubory, jako jsoupackage.jsonatsconfig.json, jsou v kořenovém adresáři projektu.Důležitý
Pokud výstup testů v okně Výstup zobrazuje
ReadOnlySpanchybu při zjišťování testů, použijte následující alternativní řešení známého problému nástroje MSBuild. V sadě Visual Studio 2022 otevřete složku Program Files\Microsoft Visual Studio\2022\<version>\Common7\IDE\Extensions\TestPlatform a přejmenujte System.Memory.dll na jiný název. Tato oprava umožňuje zjišťování testů.
Spouštění testů (ASP.NET Core)
Testy můžete spustit kliknutím na odkaz Spustit vše v Průzkumníku testů. Nebo můžete testy spustit tak, že vyberete jeden nebo více testů nebo skupin, pravým tlačítkem myši kliknete a v místní nabídce vyberete Spustit. Testy běží na pozadí a Průzkumník testů se automaticky aktualizuje a zobrazí výsledky. Kromě toho můžete také ladit vybrané testy tak, že kliknete pravým tlačítkem myši a vyberete Ladění.
Následující obrázek ukazuje příklad Jest s druhým přidaným jednotkovým testem.
U některých architektur testů jednotek se testy jednotek obvykle spouštějí proti vygenerovanému kódu JavaScriptu.
Poznámka
Ve většině scénářů TypeScriptu můžete ladit jednotkový test nastavením zarážky v TypeScriptovém kódu, kliknutím pravým tlačítkem myši na test v Test Exploreru a zvolením Ladění. Ve složitějších scénářích, například v některých scénářích, které používají zdrojové mapy, může být obtížné narazit na zarážky v kódu TypeScriptu. Jako alternativní řešení zkuste použít klíčové slovo debugger.
Poznámka
Testy profilace a pokrytí kódu se v současné době nepodporují.