C#
This commit is contained in:
		
							
								
								
									
										65
									
								
								MSTest_VSCode/MyTestProject/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								MSTest_VSCode/MyTestProject/README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,65 @@
 | 
			
		||||
**Nainstalovat do PC:**
 | 
			
		||||
 | 
			
		||||
.NET 7.0 nebo 6.0 s dlouhou podporou
 | 
			
		||||
 | 
			
		||||
Visual Studio Code
 | 
			
		||||
 | 
			
		||||
nebo 
 | 
			
		||||
 | 
			
		||||
Visual Studio 2022 - pouze WIN a MacOS
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
**Potřebná rozšíření ve VS Code:**
 | 
			
		||||
 | 
			
		||||
.NET Extension Pack
 | 
			
		||||
 | 
			
		||||
C#
 | 
			
		||||
 | 
			
		||||
Nuget Package Manager
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
**Postup vs code:**
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Založení nového projektu ve Visual Studio Code:
 | 
			
		||||
 | 
			
		||||
dotnet new mstest -n MyTestProject 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
**Stažení Selenia** (stahne potřebý základ): v terminálu musíme do složky projektu co vytvořila dotnet new mstest
 | 
			
		||||
 | 
			
		||||
dotnet add package Selenium.WebDriver
 | 
			
		||||
 | 
			
		||||
**Test se spustí:**
 | 
			
		||||
 | 
			
		||||
dotnet test
 | 
			
		||||
 | 
			
		||||
nebo za pomocí 
 | 
			
		||||
 | 
			
		||||
dotnet watch který sám automaticky sleduje změny v kódu a je schopný spustit testy
 | 
			
		||||
 | 
			
		||||
Tento návod funguje jak pod Linux (odzkoušené v distribucích EndeavorOS, Ubuntu 22.04), MacOS, Windows 11.
 | 
			
		||||
 | 
			
		||||
Z důvodu kompaktibility jseou je na GitHub pouze samotný kód testu. Ostatní soubory a složky se vytvoří po založení projektu.
 | 
			
		||||
 | 
			
		||||
Složka TestResults také není součásti verze GitHub.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
**Hints:**
 | 
			
		||||
 | 
			
		||||
 klik na tlačítko
 | 
			
		||||
 | 
			
		||||
        IWebElement tlačítko<nastavení proměnné> = driver.FindElement(By.Id("xPath tlačítka"));
 | 
			
		||||
        tlačítko.Click();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        expectedTitle = "O mně - Lukáš bloguje"; 
 | 
			
		||||
 | 
			
		||||
        actualTitle = driver.Title;
 | 
			
		||||
 | 
			
		||||
        Assert.AreEqual(expectedTitle, actualTitle, "Title does not match");
 | 
			
		||||
 | 
			
		||||
        
 | 
			
		||||
							
								
								
									
										104
									
								
								MSTest_VSCode/MyTestProject/UnitTest1.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										104
									
								
								MSTest_VSCode/MyTestProject/UnitTest1.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,104 @@
 | 
			
		||||
using OpenQA.Selenium;
 | 
			
		||||
 | 
			
		||||
using OpenQA.Selenium.Chrome;
 | 
			
		||||
 | 
			
		||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
 | 
			
		||||
 | 
			
		||||
using System;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
namespace MyTestProject;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
[TestClass]
 | 
			
		||||
 | 
			
		||||
public class UnitTest1
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    String test_url = "https://lukan.cz/";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    String itemName = "Lukáš Bloguje";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    [TestMethod]
 | 
			
		||||
 | 
			
		||||
    public void TestMethod1()
 | 
			
		||||
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
        IWebDriver driver;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        // Local Selenium WebDriver 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        driver = new ChromeDriver();
 | 
			
		||||
 | 
			
		||||
        driver.Manage().Window.Maximize();
 | 
			
		||||
 | 
			
		||||
        driver.Navigate().GoToUrl(test_url);
 | 
			
		||||
 | 
			
		||||
        driver.Manage().Window.Maximize();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        // Kontrola titulku
 | 
			
		||||
        string expectedTitle = "Lukáš bloguje - Blog o všem možném i nemožném";
 | 
			
		||||
 | 
			
		||||
        string actualTitle = driver.Title;
 | 
			
		||||
 | 
			
		||||
        Assert.AreEqual(expectedTitle, actualTitle, "Title does not match");
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        // Clikne na tlačítko 
 | 
			
		||||
 | 
			
		||||
        IWebElement Button_O_mne = driver.FindElement(By.Id("menu-item-79"));
 | 
			
		||||
 | 
			
		||||
        Button_O_mne.Click();
 | 
			
		||||
 | 
			
		||||
        // Kontrola titulku
 | 
			
		||||
        expectedTitle = "O mně - Lukáš bloguje";
 | 
			
		||||
 | 
			
		||||
        actualTitle = driver.Title;
 | 
			
		||||
 | 
			
		||||
        Assert.AreEqual(expectedTitle, actualTitle, "Title does not match");
 | 
			
		||||
 | 
			
		||||
        // Vrátí žpět na hlavní stranu
 | 
			
		||||
 | 
			
		||||
        IWebElement Button_Hlavni_strana = driver.FindElement(By.Id("menu-item-75"));
 | 
			
		||||
 | 
			
		||||
        Button_Hlavni_strana.Click();
 | 
			
		||||
 | 
			
		||||
         
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        // Počká tři sekundy na další akci 
 | 
			
		||||
 | 
			
		||||
        Thread.Sleep(3000);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        Console.Write("Dotestováno");
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        // zavře prohlížeč 
 | 
			
		||||
 | 
			
		||||
        driver.Quit();
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user