Net Core Debugging Error: оценка времени ожидания функции - PullRequest
0 голосов
/ 06 мая 2019

После перехода Selenium Tests к ядру dotnet 2.1 я получаю сообщения об ошибках типа:

"Оценка функции 'OpenQA.Selenium.Support.Events.EventFiringWebDriver.CurrentWindowHandle.get' истекла и потребоваласьнебезопасным образом прервать работу.

Я следовал за ответами на другие вопросы, в которых предлагается отключить средство повышения резкости и включить «использовать режим управляемой совместимости» & «использовать устаревшие эмуляторы выражений c # и VB» впараметры Visual Studio 2019. Ни один из них не позволяет отладочной оценке работать в netcore2.1

Если я изменю проект на целевой net461, проблема исчезнет, ​​и отладочные оценки будут работать правильно . IМне было интересно, почему это так и существуют ли какие-либо рабочие решения для этой проблемы, кроме отключения отладочных оценок.

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

public class UnitTest1
{
    [Fact]
    public void Test1()
    {
        using (var driver = new EventFiringWebDriver(
            new ChromeDriver(Directory.GetCurrentDirectory())))
        {
            driver.ExceptionThrown += Driver_ExceptionThrown;
            driver.Navigate().GoToUrl("https://google.com"); //inspect driver here
            Assert.True(driver.FindElement(By.Id("gsr")).Displayed);
        }
    }

    private void Driver_ExceptionThrown(object sender, WebDriverExceptionEventArgs e)
    {
        //Even though this even is ever called,
        //being attached causes the error when attempting to view the driver above.
        Thread.Sleep(3000);
    }
}
...