我有以下代码,在执行测试时效果很好。
但是后来我尝试运行这些测试+代码覆盖率计算(SharpDevelop 4) 它抛出异常。
有人可以说明为什么会这样吗?
SetUp:System.Security.VerificationException:操作可以 破坏运行时的稳定性。
[TestFixture]
public class NinjectExamplesTest
{
private interface IExampleInterface
{
}
private class ExampleInterfaceImplementation : IExampleInterface
{
}
private class ExampleClass
{
[Inject]
public IExampleInterface ExampleProperty { get; set; }
}
IKernel kernel;
[SetUp]
public void Init()
{
kernel = new StandardKernel();
kernel.Bind<IExampleInterface>().To<ExampleInterfaceImplementation>();
}
[Test]
public void TestStandardResolving()
{
// setup
// business
var result = kernel.Get<IExampleInterface>();
// verify
result.Should().NotBeNull();
result.Should().BeOfType<ExampleInterfaceImplementation>();
}
[Test]
public void TestPropertyResolving()
{
// setup
var exampleClass = new ExampleClass();
// business
kernel.Inject(exampleClass);
// verify
exampleClass.ExampleProperty.Should().NotBeNull();
exampleClass.ExampleProperty.Should().BeOfType<ExampleInterfaceImplementation>();
}
}
答案 0 :(得分:2)
SharpDevelop使用PartCover来执行代码覆盖。当使用known issue或类似的程序集运行时,这看起来可能与AllowPartiallyTrustedCallersAttribute(参见结尾)有关。
此修复程序应包含在最新的维护版本中,但我不知道SharpDevelop是否已打包最新版本。