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

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

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

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

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

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

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

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

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

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

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

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

2 лайка

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

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

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

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

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

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

1 лайк
<?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>

http://img.prntscr.com/img?url=http://i.imgur.com/rbTHSNJ.png

    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]

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

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

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

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

1 лайк

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

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

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

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

З.Ы. c# - How to get the name of the current method from code - Stack Overflow

3 лайка

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

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

Кинул в личку