nunit 可以配置为删除每个固定装置(或每个测试)的应用程序域
在测试单例类时,我们需要单个实例在每次测试后“消失”。有没有办法配置 nunit 在每次测试后或至少在每个固定装置后重新创建测试应用程序域?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
在测试单例类时,我们需要单个实例在每次测试后“消失”。有没有办法配置 nunit 在每次测试后或至少在每个固定装置后重新创建测试应用程序域?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
您可以在通过条件方法进行测试时提供更新单例实例的方法。
You could provide the means to renew the singleton instance when testing via a conditional method.
我需要做完全相同的事情,所以我创建了一个库,它基本上接受当前测试并在新的 AppDomain 中重新执行它。这是一个名为 NUnit.ApplicationDomain 的 nuget 包,并且是 开源。
示例代码:
相关 StackOverflow 答案
I needed to do the the exact same thing, so I created a library which basically takes the current test and re-executes it in a new AppDomain. It's a nuget package called NUnit.ApplicationDomain and is open source.
Example Code:
Related StackOverflow Answer
我想我在这里遗漏了一些东西,拉尔夫。只是为了我自己的利益,您能否解释一下为什么向您的测试类添加具有以下属性的方法来删除并重新创建您的实例对您不起作用?
为方法添加这些属性应该使它们在每次测试之前/之后运行。
为方法添加这些属性应该使它们在夹具之前/之后运行。
使用具有这些属性的方法无法在测试之间创建和销毁域是否有原因?
I guess I'm missing something here Ralph. Just for my own benefit, can you explain why adding methods with the following attributes to your Test Class that drop and recreate your instances wouldn't work for you?
Adding these attributes for methods should make them run before / after each test.
Adding these attributes for methods should make them run before / after the fixture.
Is there a reason why using methods with these attributes couldn't create and destroy your domain between tests?