我有以下静态类:
public static class UnitTestDefinitions
{
public static int Foo = 4;
/// <summary>
/// static constructor
/// </summary>
static UnitTestDefinitions()
{
InitAccounts();
}
private static void InitAccounts()
{
// some code
}
// more code
}
我有一个NUnit测试无法运行,因为我无法访问
Foo
:
我得到的实际例外是:
系统用户代码未处理TypeInitializationException
HResult=-2146233036 Message=的类型初始值设定项
'uLux。通信。PrimaryService。UnitTestDefinitions'引发了
例外来源=Ublux。通信。CoreService公司
TypeName=Ublux。通信。PrimaryService。UnitTestDefinitions单元测试定义
堆栈跟踪:
在Ublux。通信。CoreService。单元测试。TestCloudServicesCore。TestAuthentication()
在C:\GIT\Ublux\Ublux通信核心中
服务\u流量。通信。CoreService\uFlux。通信。CoreService\UnitTests\TestCloudServices\u核心。cs:线条
146内部异常:
HResult=-2146233040
消息=类型为“System”的异常。穿线。引发了ThreadAbortException“”。
我使用c#有一段时间了,所以对我来说,很明显,问题必须在静态构造函数中,换句话说,方法必须有问题
InitAccounts()
.
因此,我删除了静态类UnitTestDefinitions上的静态构造函数,并调用
InitAccounts()
手动方法为:
当我这样做的时候,我也不例外,一切都很好。为什么?