NUnit SetUpFixture 属性在 xUnit 中等效吗?

发布于 2024-09-04 10:31:52 字数 254 浏览 3 评论 0原文

在 nUnit 中,SetUpFixture 允许我在任何测试之前运行一些代码。使用xUnit时有类似的情况吗?


来自 nUnit 文档

此属性标记一个类,该类包含给定命名空间下所有测试装置的一次性设置或拆卸方法。

In nUnit, SetUpFixture allowed me to run some code before any tests. Is there anything like that when using xUnit?


From nUnit documentation:

This is the attribute that marks a class that contains the one-time setup or teardown methods for all the test fixtures under a given namespace.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

睡美人的小仙女 2024-09-11 10:31:52

xUnit 的 比较表 显示了在 NUnit 中使用 [TestFixtureSetUp] 的位置,您使测试装置类实现 IUseFixture


如果 [TestFixtureSetUp] 不是您要查找的属性,则兼容性表开头的标头会指示不存在等效项:

注意:任何不在此列表中的测试框架属性在 xUnit.net 中都没有对应的属性。

xUnit's comparison table shows that where you would use [TestFixtureSetUp] in NUnit, you make your test fixture class implement IUseFixture<T>.


If [TestFixtureSetUp] isn't the attribute you're looking for, then the header at the beginning of the compatibility table indicates that there is no equivalent:

Note: any testing framework attributes that are not in this list have no corresponding attribute in xUnit.net.

眼眸里的快感 2024-09-11 10:31:52

我知道这是一个老话题,但对于任何想了解的人来说,您可以创建一个实现 IClassFixture 的基本夹具类。您的测试装置都可以继承自该基类。

如果您需要在程序集范围内运行某些东西,您可以将单例类注入到该基类中。

internal abstract class TestFixtureBase : IClassFixture<TestApplicationFactory>, IAsyncLifetime
{
    protected TestFixtureBase(TestApplicationFactory factory)
    {
    //...
    }

    public async Task InitializeAsync()
    {
    }

    public Task DisposeAsync()
    {
        //...
    }
}

I know this is an old topic, but for anyone that comes looking, you can create a base fixture class which implements IClassFixture. Your test fixtures can all inherit from this base class.

You could inject singleton classes to this base class if you need stuff to run assembly wide.

internal abstract class TestFixtureBase : IClassFixture<TestApplicationFactory>, IAsyncLifetime
{
    protected TestFixtureBase(TestApplicationFactory factory)
    {
    //...
    }

    public async Task InitializeAsync()
    {
    }

    public Task DisposeAsync()
    {
        //...
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文