OneTimeSetUp:SetUp 或 TearDown 方法的签名无效:System-IDisposable-Dispose
OneTimeSetUp: Invalid signature for SetUp or TearDown method: System-IDisposable-Dispose
我想结合使用 nunit 的 teardownattribute 和 System.IDisposable 的实现,因为我想在 F# 中使用 use
关键字。为什么我在 运行 测试时收到此错误?
[<TestFixture>]
type public when_it_connects_to_database() =
interface IDisposable with
[<TearDown>]
member this.Dispose() =
this.connection.Dispose()
member val public connection : ApplicationDbContext = createdatabasegateway true
with get, set
[<TestCase(true)>]
member public this.it_succeeds(testmode:bool) : ApplicationDbContext =
this.connection <- createdatabasegateway testmode
this.connection
[<Test>]
member public this.it_can_read_the_database() =
this.connection.AvailableExchanges.AsEnumerable().Count()
Test Name: it_can_read_the_database Test
FullName: tests.when_it_connects_to_database.it_can_read_the_database
Test
: line 29 Test Outcome: Failed Test Duration: 0:00:00.0000001
Result Message: OneTimeSetUp: Invalid signature for SetUp or TearDown
method: System-IDisposable-Dispose
如果测试装置实现了 IDisposable,NUnit 在所有测试 运行 并且任何标有 OneTimeTearDownAttribute
的方法都有 运行.
之后处理它
用 TearDownAttribute
标记您的处置方法意味着您试图在 each 测试之后处置该对象,并且在第一次之后显然对任何测试都不健康.
您看到的实际错误消息似乎隐藏了这样一个事实,即您根本不应为此方法使用 TearDownAttribute
。只需实施 IDisposable,对象就会在适当的时候被释放。
我想结合使用 nunit 的 teardownattribute 和 System.IDisposable 的实现,因为我想在 F# 中使用 use
关键字。为什么我在 运行 测试时收到此错误?
[<TestFixture>]
type public when_it_connects_to_database() =
interface IDisposable with
[<TearDown>]
member this.Dispose() =
this.connection.Dispose()
member val public connection : ApplicationDbContext = createdatabasegateway true
with get, set
[<TestCase(true)>]
member public this.it_succeeds(testmode:bool) : ApplicationDbContext =
this.connection <- createdatabasegateway testmode
this.connection
[<Test>]
member public this.it_can_read_the_database() =
this.connection.AvailableExchanges.AsEnumerable().Count()
Test Name: it_can_read_the_database Test FullName: tests.when_it_connects_to_database.it_can_read_the_database Test : line 29 Test Outcome: Failed Test Duration: 0:00:00.0000001
Result Message: OneTimeSetUp: Invalid signature for SetUp or TearDown method: System-IDisposable-Dispose
如果测试装置实现了 IDisposable,NUnit 在所有测试 运行 并且任何标有 OneTimeTearDownAttribute
的方法都有 运行.
用 TearDownAttribute
标记您的处置方法意味着您试图在 each 测试之后处置该对象,并且在第一次之后显然对任何测试都不健康.
您看到的实际错误消息似乎隐藏了这样一个事实,即您根本不应为此方法使用 TearDownAttribute
。只需实施 IDisposable,对象就会在适当的时候被释放。