+1  A: 

From MSDN about the ASSERT macro:

In an MFC ISAPI application, an assertion in debug mode will bring up a modal dialog box (ASSERT dialog boxes are now modal by default); this will interrupt or hang the execution. To suppress modal assertion dialogs, add the following lines to your project source file (projectname.cpp):

// For custom assert and trace handling with WebDbg
#ifdef _DEBUG
CDebugReportHook g_ReportHook;
#endif

Once you have done this, you can use the WebDbg tool (WebDbg.exe) to see the assertions.

Andrew Stein
+2  A: 

I think this is a dialog shown by _CrtDbgReport for reports of type _CRT_ASSERT. With _CrtSetReportHook, you can tailor that behavior for your entire application. (i.e. requires one local change) In particular, you can continue execution after a failed assertion, thus ignoring it.

MSalters
A: 

In a unit-test context, it is often good to convert ASSERTs (actually _CrtDbgReport calls) into some exception, typically a std::exception, that contains some informative text. This tends to wend its way out to the unit test's output log as a fail. That's just what you want: A failed ASSERT should be a failed unit test.

Do that by throwing in your report-hook function, as specified using: _CrtSetReportHook()

MartinP