Tob*_*obi 22 c# unit-testing runtime-error visual-studio-2012
在我的Visual Studio 2012解决方案中,我有一个用于单元测试C++/CLI代码的C#项目,例如
...
using System.IO;
using Stuff;
namespace MyCLIClassTest
{
[TestClass]
public class MyCLIClassTest
{
public MyCLIClassTest() {}
[ClassInitialize]
public static void Setup(TestContext testContext)
{
}
[TestMethod]
public void LibraryAccessTest()
{
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在,C#测试都失败了,消息如"方法MyCLIClassTest.MyCLIClassTest.ClassInitialize有错误的签名.该方法必须是静态的,公共的,不返回值,并且应该采用TestContext类型的单个参数."
删除ClassInitializer后,我得到"无法为类MyCLIClassTest.MyCLIClassTest设置TestContext属性.错误:System.ArgumentException:类型为'Microsoft.VisualStudio.TestPlatform.MSTestFramework.TestContextImplementation'的对象无法转换为类型'Microsoft.VisualStudio.TestTools .UnitTesting.TestContext" ..
Tob*_*obi 25
我使用了较旧的单元测试框架版本的DLL.之所以发生这种情况是因为该项目最近已迁移到VS2012.
因此,在测试项目下的解决方案资源管理器中,您会找到"参考".右键单击它并选择"添加引用..."以打开引用管理器.搜索"unittest"并检查版本号为10.1.0.0的Microsoft.VisualStudio.QualityTools.UnitTestFramework.取消选中此程序集的所有其他版本.单击"确定"关闭管理器.
Zai*_*zvi 12
从一个重复的问题复制的替代答案:为什么ClassInitialize装饰方法使我的所有测试失败?
该[ClassInitialize]装饰方法应该是静态的,并采取类型的TestContext的只有一个参数:
[ClassInitialize]
public static void SetupAuth(TestContext context)
{
var x = 0;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17845 次 |
| 最近记录: |