Nunit: 'рдЯрд╛рдЗрдордЖрдЙрдЯ рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ' рдХреЛ рд╣рд┐рдЯ рдХрд░рддреЗ рд╕рдордп рдЙрдЪрд┐рдд рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо рдЕрдкрд╡рд╛рдж рд╕рдВрджреЗрд╢

рдХреЛ рдирд┐рд░реНрдорд┐рдд 25 рдордИ 2021  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: nunit/nunit

рд╣реЗ рд▓реЛрдЧреЛрдВ,

рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореИрдВ TimeoutAttribute рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ред рдореИрдВрдиреЗ рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо рд╕рдВрджреЗрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЗрд╡рд▓ Exception doesn't have a stacktrace рджреЗрдЦрд╛, рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рдкрд╣рд▓реА рдирдЬрд░ рдореЗрдВ рднреНрд░рдорд┐рдд рдХрд░ рджрд┐рдпрд╛ред рддрдм рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ, рдкрд░реАрдХреНрд╖рдг рд╕рдордпрдмрд╛рд╣реНрдп рд╣реЛ рд░рд╣рд╛ рдерд╛ред

рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдореЗрдВ рдЦреЛрджрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдХрд┐ рдЯрд╛рдЗрдордЖрдЙрдЯ рдЕрдкрд╡рд╛рдж рд╕рдВрджреЗрд╢ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рддрдХ рдХреБрдЫ рднреА рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИред

рддреЛ рдореИрдВ рдЯрд╛рдЗрдордЖрдЙрдЯ рдорд╛рд░рддреЗ рд╕рдордп рдПрдХ рдмреЗрд╣рддрд░ рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдгрд╛рдо рд╕рдВрджреЗрд╢ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб:

[Test]
[Timeout(1000)]
public async Task Timeout()
{
    // Arrange

    // Act
    await Task.Delay(2000).ConfigureAwait(false);

    // Assert
    Assert.Pass();
}

рдзрдиреНрдпрд╡рд╛рдж рд╡ рд╕рд╛рджрд░ рдЖрднрд╛рд░

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдирдорд╕реНрддреЗ @Prodigio

рдЖрдк рдкрд░реАрдХреНрд╖рдг рдХреИрд╕реЗ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ (рд╡реАрдПрд╕, рдбреЙрдЯрдиреЗрдЯ рдЯреЗрд╕реНрдЯ, рдпрд╛ рдХрдВрд╕реЛрд▓ рд░рдирд░), рдЖрдк рдХрд┐рд╕ рдврд╛рдВрдЪреЗ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдПрдирдпреВрдиреАрдЯ, рдПрдирдпреВрдиреАрдЯ 3 рдЯреЗрд╕реНрдЯ рдПрдбрд╛рдкреНрдЯрд░, рдФрд░ рдХрдВрд╕реЛрд▓ рд░рдирд░ рдХреЗ рдХреМрди рд╕реЗ рд╕рдВрд╕реНрдХрд░рдг рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдХреЛрдб рдХреА рдХреБрдЫ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдХрд┐рдорд┐рдВрдЧ рдпрд╣ рд╕рдВрдХреЗрдд рджреЗ рд╕рдХрддреА рд╣реИ рдХрд┐ рдбреЙрдЯрдиреЗрдЯ рдХреЛрд░ рдХреЗ рд▓рд┐рдП рд╣рдо рд╕рдВрджреЗрд╢ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд▓реЗрдмрд▓ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рддреБрд▓рдирд╛ рдХрд░реЗрдВ (рдврд╛рдВрдЪрд╛ рдкреНрд░рд╡рд╛рд╣)
https://github.com/nunit/nunit/blob/b34eba3ac1aa6957157857bddd116256c634afab/src/NUnitFramework/framework/Internal/Commands/TimeoutCommand.cs#L83
рдХреЗ рдЦрд┐рд▓рд╛рдл (рдбреЙрдЯрдиреЗрдЯ рдХреЛрд░ рдлреНрд▓реЛ)
https://github.com/nunit/nunit/blob/b34eba3ac1aa6957157857bddd116256c634afab/src/NUnitFramework/framework/Internal/Commands/TimeoutCommand.cs#L110 -L113

рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдЕрдВрддрд░ рдХреА рддреБрд▓рдирд╛ TimeoutCausesOtherwisePassingTestToFailWithoutDebuggerAttached() ред рдбреЙрдЯрдиреЗрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕рдВрд╕реНрдХрд░рдг
https://github.com/nunit/nunit/blob/b34eba3ac1aa6957157857bddd116256c634afab/src/NUnitFramework/tests/Attributes/TimeoutTests.cs#L297 -L299
рдбреЙрдЯрдиреЗрдЯ рдХреЛрд░ рд╕рдВрд╕реНрдХрд░рдг
https://github.com/nunit/nunit/blob/b34eba3ac1aa6957157857bddd116256c634afab/src/NUnitFramework/tests/Attributes/TimeoutTests.cs#L367 -L369

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдВрддрд░ рдЙрджреНрджреЗрд╢реНрдп рдкрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЧрд▓рддреА рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рд╣рдо рдбреЙрдЯрдиреЗрдЯ рдХреЛрд░ рдХреЗ рд▓рд┐рдП рд╕рдВрджреЗрд╢ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдкрд░рд┐рдгрд╛рдореА рдПрдХреНрд╕рдПрдордПрд▓ рдореЗрдВ рдХреЛрдИ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЗрд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдбреЙрдЯрдиреЗрдЯ рдврд╛рдВрдЪреЗ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╣реЛрдЧрд╛ Test exceeded Timeout value of 1000ms

рдЕрд░реЗ @mikkelbu ,

рд▓рд╛рдкрддрд╛ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИред рдпрд╣ рд░рд╣рд╛:

  • рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдореИрдВ рд╡реАрдПрд╕ 2019 рдХреЗ рднреАрддрд░ рд░рд┐рд╢реЗрд░реНрдкрд░ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
  • рд╣рдорд╛рд░рд╛ рд╕реАрдЖрдИ рд╕рд░реНрд╡рд░ рдЯреАрдорд╕рд┐рдЯреА рд╣реИ, рдЬрд╣рд╛рдВ рд╣рдо рдПрдХ рддрд░рдл dotnet test рд╕рд╛рде "рдирдВрдЧреЗ" рдкрд░реАрдХреНрд╖рдг рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рджреВрд╕рд░реА рддрд░рдл рдПрдирдпреВрдХреЗрдИ рдФрд░ dotnet test рдХреА рд╕рд╣рд╛рдпрддрд╛ рд╕реЗ рдХреБрдЫ рдХрд╡рд░реЗрдЬ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП
  • рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ .NET рдХреЛрд░ 3.1 рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдирд╛

рдореБрдЭреЗ рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рдФрд░ рдЯреАрдорд╕рд┐рдЯреА рдкрд░ рдПрдХ рд╣реА рд╕рдВрджреЗрд╢ Exception doesn't have a stacktrace ред

рдореИрдВ рдХрдВрд╕реЛрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдЕрдиреНрдп NUnit рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВ:

  • рдПрдирдпреВрдиреАрдЯ v3.13.2
  • NUnit.рдЗрдВрдЬрди v3.12.0
  • NUnit3TestAdapter v4.0.0-beta.2

рдореИрдВрдиреЗ рджреЗрдЦрд╛, рдХрд┐ NUnit рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ Microsoft.NET.Test.Sdk v.16.9.4 NuGet рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред рдХреНрдпрд╛ рдпрд╣ рдХреЛрдИ рдореБрджреНрджрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рдзрдиреНрдпрд╡рд╛рдж!

рдирдорд╕реНрддреЗ @Prodigio

рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рд╢реБрдХреНрд░рд┐рдпрд╛ред рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рд▓рд╛рдкрддрд╛ рдЬрд╛рдирдХрд╛рд░реА рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк .NET Core 3.1 рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд╣рдордиреЗ nunit/nunit#3190 рдореЗрдВ рдЧрд▓рддреА рдХреА рд╣реИред

рдРрд╕рд╛ рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рдХрд╛рд░рдг рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдкрд░ рд╣рдо рд╕реНрдЯреИрдХрдЯреНрд░реИрдХ рд░рд┐рдХреЙрд░реНрдб рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рд╣рдо рдХреЛрдб рдореЗрдВ рдХрд┐рддрдиреА рджреВрд░ рд╣реИрдВ (рдЗрд╕рд▓рд┐рдП рд╕реНрдЯреИрдХрдЯреНрд░реИрдХ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╣рд╛рдВ рдЗрдВрдЧрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП)ред рдКрдкрд░ рджрд┐рдП рдЧрдП context.CurrentResult.SetResult рджреЛ рдХреЙрд▓реЛрдВ рдореЗрдВ рдПрдХ рддреАрд╕рд░рд╛ рддрд░реНрдХ рд╣реИ рдЬреЛ рд╕реНрдЯреИрдХрдЯреНрд░реЗрд╕ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ рдирд╣реАрдВ рднрд░рддреЗ рд╣реИрдВред

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ .NET рдХреЛрд░ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рд╣рдо рдПрдХ рд╕рдВрджреЗрд╢ рдХреЗ рд░реВрдк рдореЗрдВ Test exceeded Timeout value ... рднреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕