【发布时间】:2015-01-18 04:51:59
【问题描述】:
我在 Visual Studio 2013 中有一个调用本机代码的 C++ CLI 测试项目;
[TestMethod]
void Test1()
{
int R1, R2;
R1 = R2 = std::numeric_limits<int>::max();
R1 = SyncPort::OpenPort(Channel, ReceiveChan, PortID, NominalBaud);
R2 = SyncPort::OpenPort(Channel, SendChan, PortID, NominalBaud);
Assert::AreEqual(spSuccess, R1);
Assert::AreEqual(spSuccess, R2);
};
由于某种原因,当我添加两个 OpenPort 调用时,测试从测试资源管理器中消失并且无法运行。如果我将它们注释掉,测试会再次出现。
SyncPort 类在一个单独的 .LIB 中定义,该 .LIB 静态链接到测试项目中。如果我在本地定义一个具有相同签名的模拟副本类,它就可以工作。我究竟做错了什么?为什么 MSTest 不喜欢我在测试中添加外部原生函数?
【问题讨论】:
-
测试的 bin 文件夹中是否有所有必需的 dll?
标签: visual-c++ visual-studio-2013 c++-cli mstest mixed-mode