使用VS 2010,NUnit,Typemock,实体框架.
我在使用NUnit/Typemock时遇到了一些奇怪的问题。我对测试世界比较陌生,所以这可能是初学者的错误。这就是我遇到的问题。
compiled.
什么是第一个测试并不重要。我可以选择一个特殊的测试。如果它是第一个运行的,它将在第一个执行时失败。它会继续运行。
这是一个有问题的示例类。但这门课并不重要。不管先运行什么测试,都有这个问题。异常代码只是用来测试正在加载的Typemock。它在WhenCalled上失败了。
[TestClass, Isolated]
public class FirstTest
{
[TestMethod]
public void TestMe()
{
Exception e = new TypeMock.ArrangeActAssert.NestedCallException();
Isolate.WhenCalled(() => UnitOfWorkManager.GetCurrentSession(null)).WillReturn(null);
Assert.IsTrue(true);
}
}下面是错误消息。
HCSO.ESL.Test.Fakes.FirstTest.TestMe: TypeMock.ArrangeActAssert.NestedCallException:* WhenCalled不支持使用属性调用作为参数。-修复这个pass而不是AssemblyReader.IsDotNetFile
Something.Other().GetStuff();
work:
(结束错误消息)
有谁知道为什么第一次测试总是失败,但在重新运行时运行良好?程序集是如何加载的?
(编辑)其他详细资料:
版本: Typemock Isolator: 6.0.10.0 Visual Studio: 10.0.30319.1
此外,我还添加了简化的测试代码。这样,您就可以看到正在测试的代码。是的,这个测试第一次失败,在那之后的每一次运行都会通过。
[TestClass, Isolated]
public class FirstTest
{
public static int DummyCall(int i)
{
return 0;
}
[TestMethod]
public void TestMe()
{
Exception e = new TypeMock.ArrangeActAssert.NestedCallException();
//Isolate.WhenCalled(() => UnitOfWorkManager.GetCurrentSession(null)).WillReturn(null);
Isolate.WhenCalled(() => FirstTest.DummyCall(-1)).WillReturn(1);
Assert.IsTrue(true);
}
}发布于 2011-07-21 19:41:28
我在Typemock工作,
这看起来很奇怪,因为从外观上看,这绝对不是一个嵌套调用。请您试着用电子邮件向support@typemock.com展示这个问题的一个小解决方案好吗?
UnitOfWorkManager是什么?这是属于EF的类,还是您的代码?
另外,您使用的是什么版本的隔离器?
发布于 2011-07-22 15:07:43
我解决了这个问题。正如我所料,这在一定程度上是新手犯的错误。在NUnit内部有一个设置来确定程序集是如何隔离的。默认选项是在与NUnit相同的进程中运行测试。我试着在每个程序集中单独的进程中更改隔离,问题就消失了。
复制错误。*确保选中了“在NUnit进程中直接运行测试”的NUnit选项。*关闭NUnit (只是为了确保使用设置)*从VS内部启动NUnit。*选择包含Isolate.WhenCalled() *的测试,首先运行该测试。
谢谢你的帮助。
编辑:如果其他人有此问题,请更新此更新。
我发现,在NUnit客户机中,如果设置以下选项,一切都很好。
在“设置:测试加载器”->程序集隔离->默认流程模型-> 直接在NUnit process中运行测试。
测试加载器->程序集隔离->默认域使用-> 每个程序集使用单独的AppDomain
https://stackoverflow.com/questions/6781635
复制相似问题