Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

[Resolved] Как залогировать название теста, который выполняется в данную секунду

visual-studio
webdriver
Теги: #<Tag:0x00007f7b623ddc60> #<Tag:0x00007f7b623ddad0>

(Andrew Vader) #1

Я сейчас пытаюсь написать свой собственный фреймворк для тестирования(Visual studio, C#, Selenium, NLog). Пока что только учусь на автоматизатора, но уже есть очень неплохие наработки.

Ближе к делу: Фреймворк будет поддерживать запуск тестов в паралели.

Проблема в следующем: я не понимаю как залогировать название теста, который выполняется в данную секунду, окроме как записывать его название вручную.
Есть идеи как возможно реализовать?

вопрос №2: есть ли возможность юзать логи самого селениума, но
а. изменять вручную детальность логов
б. сохранять логи отдельного теста в отдельный файл
в. указать шаблон записи логов, как это возможно в NLog.
Информацию искал, но не нашел. =(((


(Nick) #2

У nUnit есть свойство TestContext.CurrentContext.Test.Name


(Andrew Vader) #3

спасибо, конечно, но идея подключать другой фреймворк для использования 1й функции не совсем хорошая =)

Хотя, авось оттуда можно вытащить реализацию…


(Nick) #4

Эм. А с помощью чего гоняются тесты? MSTest?


(Andrew Vader) #5

Пишу свою утилику для запуска тестов паралельно до написания фреймворка.
Тесовые запуски тестов, конечно же, через вижуалку ( VSTest.Console ), в експресс вижуалке нет встроенного MSTest


(Александр Таранков) #6

Если ты пишешь свой test framework, который не использует имеющиеся фреймворки запуска тестов, то метод для получения имени теста, выполняющегося в данный момент, ты должен написать сам! :smile:

Вопрос только зачем изобретать велосипед? В NUnit нет возможности параллельного запуска?


(Andrew Vader) #7

joemast, логи раннера и логи с тестов – разные вещи. =) Заметь, ведь сам селениум где-то берет название теста и пишет в логе, и без логирования с раннера. Так ведь? =)

Ответ более чем простой: научится делать самому велосипед важнее в плане прокачки скилов. У меня нету иллюзий что я сделаю что-то мега-новаторское.
Но я хочу научится как можно большему за как можно меньший период времени. А значит и задачи перед мной должны стоять более сложные. А использование готового продукта – не то.

Ответы на конкретно заданные вопросы в самой теме знаешь? Или только чужими наработками пользоваться? =)
А я вот хочу уметь и сам написать уметь, и пользоватся чужими наработками.


(Александр Таранков) #8

Selenium знать ничего не знает ни о каких тестах и логах. Это библиотека для работы с браузером

Зависит от того какие скилы ты прокачиваешь. Если скилл изобретения велосипеда, то да. А если автоматизатора, то ты ошибаешься. Автоматизатору нужно хорошо знать имеющийся инструментарий и уметь с ним работать. Это позволяет решать задачи эффективнее.

Ответ я уже дал - для достижения твоих целей уже есть готовые инструменты. Научись с ними работать и ты достигнешь большего, чем через изобретение своего велосипеда с квадратными колесами. Для большего прогресса читай исходники этих инструментов.


(Andrew Vader) #9
<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="NLog" version="3.2.0.0" targetFramework="net45" />
  <package id="NLog.Config" version="3.2.0.0" targetFramework="net45" />
  <package id="NLog.Schema" version="3.2.0.0" targetFramework="net45" />
  <package id="Selenium.Support" version="2.44.0" targetFramework="net45" />
  <package id="Selenium.WebDriver" version="2.44.0" targetFramework="net45" />
</packages>

    15:46:59.185 INFO - Done: [new session: Capabilities [{browserName=firefox, vers
ion=, platform=ANY}]]
15:46:59.243 INFO - Executing: [maximise window])
15:46:59.268 INFO - Done: [maximise window]

(Александр Таранков) #10

Давай скрин. А ещё содержимое packages.config своего проекта. Надеюсь ты хотя бы nuget-ом пользуешься?


(Andrew Vader) #11

сорри, нечаянно изменил свое предыдущее сообщение, смотри ответ в нем


(Александр Таранков) #12

Лог здесь пишет selenium-server-standalone, который тебе вообще говоря и не нужен, если браузер установлен на той же машине, где работают тесты.
В любом случае этот лог тебе ничем не поможет - в него пишется только взаимодействие с браузером: какие запросы к каким элементам идут и с каким результатом. Ничего своего ты в этот лог не запишешь, потому что его пишет сам сервер.

Короче, учи матчасть. Нет ничего зазорного в том, чтобы научиться пользоваться тем, что до тебя годами разрабатывали умные ребята. На одно только это изучение у тебя уйдет не один год. А велосипед всегда успеешь изобрести


(Andrew Vader) #13

Абсолютно идентичнЬІй лог пишет локально, если не подключать селениум сервер =)
И я знаю что в даном случае селениум сервер не нужен. Подключал тестово его =)

Учу, по 8-14 часов на день учу.


(ex3me0) #14

Ога, учите, Шура, учите.

На код Ваш сообщество может взглянуть, чтобы понять чему научились?

З.Ы. http://stackoverflow.com/questions/2652460/c-sharp-how-to-get-the-name-of-the-current-method-from-code


(Andrew Vader) #15

Спасибо! Первый ответ реально по теме =)

Конечно же можно. Но только если с аргументированной критикой =)
Как по стилистике написания кода, так и по оптимальности выбранных способов решения задач.

Кинул в личку