Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
IntelliTest verkent uw .NET-code om testgegevens en een reeks eenheidstests te genereren. Voor elke instructie in de code wordt een testinvoer gegenereerd waarmee die instructie wordt uitgevoerd. Er wordt een caseanalyse uitgevoerd voor elke voorwaardelijke vertakking in de code. Bijvoorbeeld instructies if , asserties en alle bewerkingen die uitzonderingen kunnen genereren, worden geanalyseerd. Deze analyse wordt gebruikt om testgegevens te genereren voor een geparameteriseerde eenheidstest voor elk van uw methoden, waarbij eenheidstests met een hoge codedekking worden gemaakt. U kunt het beschouwen als slimme fuzz-tests waarmee de invoer- en testcases worden ingekort tot wat al uw logische vertakkingen uitvoert en op uitzonderingen controleert.
Wanneer u IntelliTest uitvoert, kunt u eenvoudig zien welke tests mislukken en eventuele benodigde code toevoegen om deze op te lossen. U kunt selecteren welke van de gegenereerde tests u wilt opslaan in een testproject om een regressiepakket te bieden. Wanneer u de code wijzigt, voert u IntelliTest opnieuw uit om de gegenereerde tests gesynchroniseerd te houden met uw codewijzigingen.
Opmerking
IntelliTest is verouderd verklaard in Visual Studio 2026. In Visual Studio 2022 wordt IntelliTest alleen ondersteund voor .NET Framework en is beperkt tot Visual Studio Enterprise. Ondersteuning voor .NET 6 is beperkt tot alleen een preview-versie.
Opmerking
In Visual Studio 2022 wordt IntelliTest alleen ondersteund voor .NET Framework en is beperkt tot Visual Studio Enterprise. Ondersteuning voor .NET 6 is beperkt tot alleen een preview-versie.
Beschikbaarheid en extensies
De menuopdrachten IntelliTest maken en IntelliTest uitvoeren :
Zijn alleen beschikbaar in de Enterprise Edition van Visual Studio.
Alleen C#-code ondersteunen die voor .NET Framework bestemd is.
uitbreidbaar en ondersteunen het uitvoeren van tests in MSTest, MSTest V2, NUnit en xUnit-indeling.
Geen ondersteuning voor x64-configuratie (preview-versie vereist).
Verkennen: IntelliTest gebruiken om uw code te verkennen en eenheidstests te genereren
Als u eenheidstests wilt genereren, moeten uw typen openbaar zijn.
Open uw oplossing in Visual Studio en open vervolgens het klassebestand met methoden die u wilt testen.
Klik met de rechtermuisknop op een methode en kies IntelliTest uitvoeren om eenheidstests voor de code in uw methode te genereren.
              
            
              
            IntelliTest voert uw code vaak uit met verschillende invoerwaarden. Elke uitvoering wordt weergegeven in de tabel met de invoertestgegevens en de resulterende uitvoer of uitzondering.
              
            
              
            
Als u eenheidstests voor alle openbare methoden in een klasse wilt genereren, klikt u met de rechtermuisknop op de klasse in plaats van op een specifieke methode en kiest u Vervolgens IntelliTest uitvoeren. Gebruik de vervolgkeuzelijst in het venster Verkenningsresultaten om de eenheidstests en de invoergegevens voor elke methode in de klasse weer te geven.
              
              
            
              
              
            
Controleer voor tests die zijn geslaagd of de gerapporteerde resultaten in de resultatenkolom overeenkomen met uw verwachtingen voor uw code. Voor tests die mislukken, herstelt u de code indien nodig. Voer vervolgens IntelliTest opnieuw uit om de oplossingen te valideren.
Persistent: Sla de eenheidstests op als een regressiesuite
Selecteer de gegevensrijen die u wilt opslaan met de geparameteriseerde eenheidstest in een testproject.
              
            
              
            U kunt het testproject en de geparameteriseerde eenheidstest bekijken die is gemaakt: de afzonderlijke eenheidstests, die overeenkomen met elk van de rijen, worden opgeslagen in het .g.cs-bestand in het testproject en een geparameteriseerde eenheidstest wordt opgeslagen in het bijbehorende .cs bestand. U kunt de eenheidstests uitvoeren en de resultaten bekijken vanuit Test Explorer, net zoals voor alle eenheidstests die u handmatig hebt gemaakt.
              
            
              
            Alle benodigde verwijzingen worden ook toegevoegd aan het testproject.
Als de methodecode wordt gewijzigd, voert u IntelliTest opnieuw uit om de eenheidstests gesynchroniseerd te houden met de wijzigingen.
Assist: IntelliTest gebruiken om codeverkenning te concentreren
Als u complexere code hebt, helpt IntelliTest u bij het focussen op het verkennen van uw code. Als u bijvoorbeeld een methode hebt die een interface als parameter heeft en er meer dan één klasse is die die interface implementeert, detecteert IntelliTest deze klassen en rapporteert een waarschuwing.
Bekijk de waarschuwingen om te bepalen wat u wilt doen.
              
            
              
            Nadat u de code hebt onderzocht en begrijpt wat u wilt testen, kunt u de waarschuwing herstellen om te kiezen welke klassen moeten worden gebruikt om de interface te testen.
              
            
              
            Deze keuze wordt toegevoegd aan het PexAssemblyInfo.cs-bestand .
[assembly: PexUseType(typeof(Camera))]U kunt Nu IntelliTest opnieuw uitvoeren om een geparameteriseerde eenheidstest te genereren en gegevens te testen met behulp van de klasse die u hebt opgelost.
              
            
              
            
Specificeer: Gebruik IntelliTest om de correctheidseigenschappen te valideren die je in de code opgeeft.
Geef de algemene relatie op tussen invoer en uitvoer die door de gegenereerde eenheidstests moet worden gevalideerd. Deze specificatie wordt ingekapseld in een methode die lijkt op een testmethode, maar universeel gekwantificeerd is. Dit is de testmethode voor geparameteriseerde unit-tests en eventuele asserties die u maakt, moeten gelden voor alle mogelijke invoerwaarden die IntelliTest kan genereren.
Vragen en antwoorden
V: Kunt u IntelliTest gebruiken voor niet-beheerde code?
Een: Nee, IntelliTest werkt alleen met beheerde code.
V: Wanneer wordt een gegenereerde test geslaagd of mislukt?
A: Het slaagt net als elke andere eenheidstest als er geen uitzonderingen optreden. Het mislukt als een assertie mislukt of als de code onder de test een onverwerkte uitzondering genereert.
Als u een test hebt die kan slagen als bepaalde uitzonderingen worden gegenereerd, kunt u een van de volgende kenmerken instellen afhankelijk van uw vereisten op testmethodeniveau, testklasseniveau of assemblyniveau.
PexAllowedExceptionAttribute
PexAllowedExceptionFromTypeAttribute
PexAllowedExceptionFromTypeUnderTestAttribute
PexAllowedExceptionFromAssemblyAttribute
V: Kan ik veronderstellingen toevoegen aan de geparameteriseerde eenheidstest?
              Een: Ja, gebruik veronderstellingen om op te geven welke testgegevens niet vereist zijn voor de eenheidstest voor een specifieke methode. Gebruik de PexAssume klasse om aannames toe te voegen. U kunt bijvoorbeeld een aanname toevoegen dat de lengths variabele niet null is, zoals deze:
PexAssume.IsNotNull(lengths);
Als u een aanname toevoegt en IntelliTest opnieuw uitvoert, worden de testgegevens verwijderd die niet meer relevant zijn.
V: Kan ik asserties toevoegen aan de geparameteriseerde eenheidstest?
A: Ja, IntelliTest controleert of wat u in uw bewering stelt in feite juist is wanneer de unittests worden uitgevoerd. Gebruik de PexAssert klasse of de assertion-API die bij het testframework wordt geleverd om asserties toe te voegen. U kunt bijvoorbeeld een verklaring toevoegen dat twee variabelen gelijk zijn.
PexAssert.AreEqual(a, b);
Als u een assertie toevoegt en IntelliTest opnieuw uitvoert, controleert u of uw assertie geldig is en mislukt de test als dat niet zo is.
V: Kan ik geparameteriseerde eenheidstests genereren zonder eerst IntelliTest uit te voeren?
Een: Ja, klik met de rechtermuisknop in de klasse of methode en kies IntelliTest maken.
              
              
            
              
              
            
Accepteer de standaardindeling om uw tests te genereren of wijzig de naam van uw project en tests. U kunt een nieuw testproject maken of uw tests opslaan in een bestaand project.
              
              
            
              
              
            
V: Kan ik andere eenheidstestframeworks gebruiken met IntelliTest?
Een: Ja, volg deze stappen om andere frameworks te zoeken en te installeren. Testframeworkextensies zijn ook beschikbaar in Visual Studio Marketplace, bijvoorbeeld NUnit Test Generator.
Nadat u Visual Studio opnieuw hebt opgestart en de oplossing opnieuw hebt geopend, klikt u met de rechtermuisknop in de klasse of methode en kiest u Vervolgens IntelliTest maken. Selecteer hier uw geïnstalleerde framework:
              
              
            
              
              
            
Voer vervolgens IntelliTest uit om afzonderlijke eenheidstests te genereren in de bijbehorende .g.cs-bestanden .
V: Kan ik meer informatie krijgen over hoe de tests worden gegenereerd?
Een: Ja, lees dit blogbericht voor een overzicht op hoog niveau.