首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >NUnit测试调试

NUnit测试调试
EN

Stack Overflow用户
提问于 2015-07-29 01:30:35
回答 4查看 681关注 0票数 16

我正在开发一个几何库。有200+单元测试。

有一个特别顽固的测试,每当我选择"Run All“时都会失败,但当我单独运行该测试时,或在其上使用调试器时,测试通过。我相信这个问题是在我从visual studio '13切换到'15版本时出现的。

下面是关于几何库的一些注意事项:

对象是不可变的。

测试之间没有共享对象。

所以我的问题是:这种奇怪行为的可能原因是什么?

编辑:

代码语言:javascript
复制
[Test()]
public void Plane_IntersectionWithPlane_IdenticalPlane()
{
     Plane testPlane = new Plane(new Direction(Point.MakePointWithInches(2, -1, 1)), 
                                               Point.MakePointWithInches(2, 1, 2));
     Line found = (testPlane.Intersection(testPlane));

     Line expected = new Line(new Direction(Point.MakePointWithInches(0, -1, -1)), 
                                            Point.MakePointWithInches(2, 1, 2));
     Assert.IsTrue(found.Equals(expected));
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-09-01 22:02:04

尝试以下操作:

打开Nunit GUI,在运行测试之前,在设置中更改以上设置:

它帮助我发现了我的问题。

顺便说一句:你使用的是什么版本的NUNIT?如果你不知道什么是Nunit GUI,那么你可能没有单独下载Nunit。您可以从以下位置获取安装:

http://www.nunit.org/index.php?p=download

票数 3
EN

Stack Overflow用户

发布于 2015-08-30 06:07:58

根据我在测试用例中看到的,不同的行为是奇怪的,但测试失败是一个完全有效的结果:

与自身相交的平面将是平面,因此如果结果被限制为一条线,那么平面上具有两个不同点的任何线都将是有效的结果,但对一条特定线的测试看起来像是将执行结果反向工程到测试预期中。

如果需求/规范非常具体地说明了来自单位交集的结果线的方向,那么情况就不同了,所以您可能想要在这方面提供一些更多的见解。

我很抱歉将此作为答案而不是缺少注释的代表发布。

票数 0
EN

Stack Overflow用户

发布于 2015-09-04 17:07:21

请检查是否有静态变量。静态变量存在于AppDomain级别,因此,一个测试用例设置的静态变量可能会对其他测试用例造成副作用。

您可以先在单独的应用程序域中运行此测试用例,以在开始搜索静态变量之前确认行为。很抱歉,我从来没有尝试在nunit中创建一个新的appdomain。但是这里的一个答案确实给出了一个关于如何为测试用例创建新的应用程序域的提示-- Run unit tests in different appdomain with NUnit

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

https://stackoverflow.com/questions/31683313

复制
相关文章

相似问题

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