Как войти с Nlog в SpecFlow? - PullRequest
0 голосов
/ 17 мая 2018

SpecFlow записывает свой вывод в консоль следующим образом:

Given the "TestOperator" user is logged in
-> done: WebUserSteps.GivenTheUserIsLoggedIn("TestOperator", "") (9.5s)

Как мы можем заставить его использовать NLog для настройки, куда он должен писать?

При этом:

public class CustomListener : ITraceListener
{
    private Logger Log = LogManager.GetLogger("SPECFLOW");

    public void WriteTestOutput(string message)
    {
        Log.Trace(message);
    }

    public void WriteToolOutput(string message)
    {
        Log.Trace(message);
    }
}

И

[Binding]
public class ScenarioContextInitializer 
{
    private readonly IObjectContainer _container;

    public ScenarioContextInitializer(ScenarioContext scenarioContext)
    {
        _container = (scenarioContext ?? throw new ArgumentNullException(nameof(scenarioContext))).ScenarioContainer;
    }

    [Before]
    protected void Load()
    {
        _container.RegisterTypeAs<CustomListener, ITraceListener>();
    }
}

Не сработало.Я знаю, что есть возможность добавлять плагины , но это кажется слишком сложным.

Также мы используем ObjectivityLtd Test.Automation extensions.

Работает через xunit-тесты, сгенерированные SpecFlow.xUnit

...