NUnit和xUnit.net有什么区别?开发其中的两个,而不仅仅是一个,有什么意义?
我读到xUnit是由NUnit的发明者开发的:
xUnit.net是.NET框架的单元测试工具。由编写,NUnit的原始发明者
另一方面:
NUnit是一个适用于所有.Net语言的单元测试框架。当前的产品版本,版本2.6,是这个基于xUnit的单元测试工具的第七个主要版本
那么真相在哪里呢?
发布于 2016-10-24 14:14:49
在编写此答案时,最新的NUnit版本是v3.5,xUnit.net是v2.1。
这两个框架都很棒,它们都支持并行测试运行(但方式不同)。自2002年以来,NUnit就已经出现了,它被广泛使用,有很好的文档记录,并且有一个庞大的社区,而xUnit.net更现代化,更具有TDD的依附性,更易于扩展,而且在.NET Core开发中也很流行。它也有很好的记录。
除此之外,我注意到的主要区别是xUnit.net运行测试方法的方式。因此,在NUnit中,我们有一个测试类和一组测试方法。
NUnit创建测试类的新实例,然后从同一个实例运行所有测试方法。
然而,xUnit.net为每个测试方法创建测试类的新实例。
因此,不能使用字段或属性在测试方法之间共享数据,这是一个糟糕的实践,因为我们的测试方法相互依赖,这在TDD中是不可接受的。因此,如果使用xunit.net,您可以确保您的测试方法是完全隔离的。
但是,如果您愿意在测试方法之间共享一些数据,xUnit将允许您这样做。因此,默认情况下,所有测试方法都是完全隔离的,但在特定情况下可以故意打破这种隔离。我喜欢这种态度,这就是我更喜欢它的原因。
发布于 2012-03-19 12:03:07
您将单个工具(xUnit.net)的名称与整个单元测试框架(xUnit )的名称混淆在一起(xUnit是指语言/环境的x,例如JUnit、NUnit、.)。
发布于 2015-10-27 19:39:38
xUnit Pros:
xUnit采用了一个新的概念,避免了旧的"SetUp“和"TearDown”方法。它迫使我们像作为.NET开发人员一样使用.NET和构造函数。此外,xUnit有一个明确的上下文共享概念。
xUnit Cons:
获得测试上下文的可用性尚未实现。
https://stackoverflow.com/questions/9769047
复制相似问题