首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么xUnit框架不允许测试并行运行?

为什么xUnit框架不允许测试并行运行?
EN

Software Engineering用户
提问于 2011-03-08 20:42:38
回答 6查看 5.4K关注 0票数 15

您知道有什么xUnit框架允许并行运行测试,利用当今机器中的多个核心吗?

如果没有人(或少数人)这么做,也许是有原因的.是因为测试速度太快,以至于人们根本不觉得有必要对它们进行平分吗?

有什么更深层次的东西可以阻止在多个线程上分发(至少一些)测试吗?

EN

回答 6

Software Engineering用户

回答已采纳

发布于 2011-03-08 20:51:25

NUnit 2.5捆绑了允许并行运行测试的pNUnit。

这个版本包括pNUnit,一种用于分布式并行测试的扩展NUnit运行程序。pNUnit程序是在Codice软件上开发的,用于测试塑料单片机,并为NUnit做出了贡献。有关使用pNUnit的更多信息,请参见pNUnit站点。

JUnit端有平行junit氨基

票数 6
EN

Software Engineering用户

发布于 2011-03-08 21:10:38

要回答您问题的第二部分:是否有更深层次的内容可以阻止在多个线程上分发(至少部分)测试?

很多代码只在单线程运行时才能工作。在编写程序时意外地产生资源争用和死锁是很简单的,前提是它们将是单线程运行的。这很好,因为大多数程序实际上都是单线程运行的。并行性是通过同时运行多个副本或不同的程序来实现的(web脚本就是一个常见的例子--许多用户访问单个页面意味着该页面同时运行的脚本副本很多)。

想象一个简单的“日志到文件”类。当您创建一个实例时,它将打开用于写入的文件,当您释放该实例时,它将关闭该文件。因此,第一个测试创建一个实例并开始运行一个测试。第二个测试在第二个线程中做同样的事情。并且失败,因为第二个实例无法获得对文件的写访问权。但是如果一次运行一个,所有的测试都会通过。

所有这些都可以进行编码,并且可以调整简单的示例以使其工作。但是对最初的程序来说,这样做可能是不必要的。对于许多人来说,必须编写线程安全代码才能运行单元测试是不合理的。因此,多线程单元测试应该仍然是一个可选的额外的。

票数 10
EN

Software Engineering用户

发布于 2011-03-08 20:56:23

如果测试需要设置和查询数据库,则并行运行的测试将相互干扰,除非每个测试有一个单独的数据库并行运行。

票数 4
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/56092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档