我们刚刚从Visual Studio 2008"升级"到Visual Studio 2012.我们更新了单元测试,现在它们在单独运行时通过但是当我尝试全部运行时,我收到以下错误:
The active Test Run was aborted because the execution process exited unexpectedly. To investigate further, enable local crash dumps either
at the machine level or for process vstest.executionengine.appcontainer.x86.exe. Go to more details: [http://go.microsoft.com/fwlink/?linkid=232477][1]
Run Code Online (Sandbox Code Playgroud)
所以我转到链接并按照说明添加注册表项以启用本地故障转储.然后将错误消息更改为:
The active Test Run was aborted because the execution process exited unexpectedly. Check the execution process logs for more information.
If the logs are not enabled, then enable the logs and try again.
Run Code Online (Sandbox Code Playgroud)
显然它注意到我在注册表中所做的更改以启用崩溃.但是,当我查看%LOCALAPPDATA%\ CrashDumps时,没有创建任何文件.
如果我一次运行一个测试(或者一次只进行几次测试),我可以让它们全部通过.问题仅在于全部运行.
有没有其他人遇到类似的问题?如果是这样,你是如何解决它们的?
基本上同样的问题在MSDN上 …
我试图对一些c ++代码进行单元测试,但遇到了一些麻烦.
我有类似以下代码行的东西......
std::string s1 = obj->getName();
std::string s2 = "ExpectedName";
Assert::AreEqual(s1, s2, "Unexpected Object Name");
Run Code Online (Sandbox Code Playgroud)
而且我得到以下编译器错误...
error C2665: 'Microsoft::VisualStudio::TestTools::UnitTesting::Assert::AreEqual' :
none of the 15 overloads could convert all the argument types
Run Code Online (Sandbox Code Playgroud)
看起来它应该与以下重载匹配:
AreEqual<(Of <(T>)>)(T, T, String)
Run Code Online (Sandbox Code Playgroud)
上面的重载是不是应该支持任何对象的模板重载,只要参数1和2属于同一类型?或者我错过了什么?
还有其他方法可以实现此断言吗?
在过去禁用外键检查的数据库中,如何检查外键约束违规?
我有一个具有一堆功能的基类和一个扩展该类的派生类,但基类中有一些方法对派生类没有意义。
是否可以采取措施防止派生类使用这些方法?
Class A
{
...
public:
void SharedMethod();
virtual void OnlyMakesSenseOnA();
}
Class B : public Class A
{
...
public:
void OnlyMakesSenseOnB();
}
Run Code Online (Sandbox Code Playgroud)
以下显然不起作用,但是否可以做类似的事情,以便编译器不允许调用某个基类方法?
Class B : public Class A
{
...
public:
void OnlyMakesSenseOnA() = 0;
}
Run Code Online (Sandbox Code Playgroud) c++ ×2
unit-testing ×2
database ×1
foreign-keys ×1
mysql ×1
sql ×1
std ×1
string ×1
visual-c++ ×1