Не работает тестирование при запуске консоли C#
У меня есть два файла .cs, как сделать так, чтобы я мог запускать HabrConsole.exe и в эту консоль шли логи, которые уже организованы во втором .cs.
Сейчас при запуске консоли, она просто открывается с текстом из Main() и дальше тесты не запускаются, запускаются тесты только из обозревателя тестов и логи в консоль идут только в самом Visual Studio
Один из них это консоль с кодом:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
using System.IO;
using System.Threading;
namespace HabrConsole
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Начало лога: ");
Console.ReadLine();
}
}
}
В другом .cs полностью рабочий код:
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading;
namespace HabrTests
{
[TestFixture(typeof(ChromeDriver))]
[TestFixture(typeof(FirefoxDriver))]
public class Tests<TWebDriver> where TWebDriver : IWebDriver, new()
{
private IWebDriver driver;
private readonly By _allStreamButton = By.XPath("//a[text()='Все потоки']");
private readonly By _developButton = By.XPath("//a[text()='Разработка']");
private readonly By _adminButton = By.XPath("//a[text()='Администрирование']");
private readonly By _designButton = By.XPath("//a[text()='Дизайн']");
private readonly By _manageButton = By.XPath("//a[text()='Менеджмент']");
private readonly By _marketButton = By.XPath("//a[text()='Маркетинг']");
private readonly By _scientButton = By.XPath("//a[text()='Научпоп']");
private readonly By _mainPageButton = By.XPath("//a[@class='logo']");
private readonly By _titlesOfMain = By.XPath("//a[@class='post__title_link']");
private readonly By _searchButton = By.XPath("//*[@id='search-form-btn']");
private readonly By _searchInput = By.XPath("//*[@id='search-form-field']");
private readonly By _dateButton = By.XPath("//li[@class='toggle-menu__item']");
private readonly By _allArticles = By.ClassName("content-list__item_post");
private readonly By _hub = By.ClassName("hub-link");
private readonly By _readMoreButton = By.XPath("//a[@class='btn btn_x-large btn_outline_blue post__habracut-btn']");
private readonly By _headArticleText = By.XPath("//div[@class='post__text post__text_v2']/p");
private readonly By _commentsCount = By.XPath("//span[@id='comments_count']");
string path = @"C:\log.txt";
public void SW(string x)
{
using (StreamWriter stream = new StreamWriter(path, true))
{
stream.WriteLine(x);
}
Console.WriteLine(x);
}
[SetUp]
public void Setup()
{
this.driver = new TWebDriver();
driver.Manage().Window.Maximize();
driver.Navigate().GoToUrl("https://habr.com/ru");
}
[Test]
public void Test()
{
SW("--------------------------------------------");
SW("Browser driver name: " + driver.GetType().ToString());
SW("--------------------------------------------");
SW("List of all menu items: \n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
var allStr = driver.FindElement(_allStreamButton);
allStr.Click();
SW(driver.Title);
Thread.Sleep(800);
driver.FindElement(_developButton).Click();
SW(driver.Title);
Thread.Sleep(800);
driver.FindElement(_adminButton).Click();
SW(driver.Title);
Thread.Sleep(800);
driver.FindElement(_designButton).Click();
SW(driver.Title);
Thread.Sleep(800);
driver.FindElement(_manageButton).Click();
SW(driver.Title);
Thread.Sleep(800);
driver.FindElement(_marketButton).Click();
SW(driver.Title);
Thread.Sleep(800);
driver.FindElement(_scientButton).Click();
SW(driver.Title + "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
Thread.Sleep(800);
driver.FindElement(_mainPageButton).Click();
Thread.Sleep(800);
List<IWebElement> _allTitles = driver.FindElements(_titlesOfMain).ToList();
SW("List of all article titles:");
foreach (IWebElement aTitles in _allTitles)
{
SW(aTitles.Text);
}
SW("\n");
Thread.Sleep(800);
driver.FindElement(_searchButton).Click();
Thread.Sleep(800);
driver.FindElement(_searchInput).SendKeys("Selenium" + Keys.Enter);
Thread.Sleep(800);
driver.FindElements(_dateButton)[1].Click();
Thread.Sleep(2000);
var hubList = driver.FindElements(_allArticles)[0].FindElements(_hub);
SW("List of all hubs in the first article:");
foreach (IWebElement hub in hubList)
{
SW(hub.Text);
}
SW("\n");
Thread.Sleep(2000);
var titleofthird = driver.FindElements(_titlesOfMain)[2];
SW("Title of the third article: " + titleofthird.Text + "\n");
Thread.Sleep(1000);
driver.FindElements(_readMoreButton)[2].Click();
Thread.Sleep(2500);
var head = driver.FindElements(_headArticleText)[0];
SW("Article title: " + head.Text + "\n");
Thread.Sleep(800);
var comments = driver.FindElement(_commentsCount);
SW("Count of comments: " + comments.Text + "\n");
}
[TearDown]
public void TearDown()
{
driver.Quit();
}
}
}