У меня есть следующие методы тестирования «Магазин Windows / Metro Style» в VS 2012 C ++ / CX
Это успешно, что нормально
TEST_METHOD(TestMethod)
{
bool passed = false;
concurrency::event finished;
finished.reset();
auto testTask = concurrency::create_task( [&finished, &passed]()
{
passed = true;
finished.set();
});
finished.wait(100000);
Assert::IsTrue(passed);
}
Этот сбой, что тоже нормально:
TEST_METHOD(TestMethod)
{
bool passed = true;
concurrency::event finished;
finished.reset();
auto testTask = concurrency::create_task( [&finished, &passed]()
{
passed = false;
finished.set();
});
finished.wait(100000);
Assert::IsTrue(passed);
}
Но по какой-то причине этот тест не проходит:
TEST_METHOD(FailedTest)
{
concurrency::event finished;
finished.reset();
auto testTask = concurrency::create_task( [&finished]()
{
Assert::IsTrue(false);
finished.set();
});
finished.wait(100000);
}
Я делаю что-то неправильно?
Как примечание, возможный обходной путь может заключаться в том, чтобы поместить все результаты моих тестов в переменные и «протестировать» их все после finished.wait(100000);
, но я все еще хотел бы знать, действительно ли что-то не так с тем, что я делаю.
Тест не пройден. Если вы откроете окно вывода тестов (Вид -> Вывод, затем под Показать вывод из, Выбрать тесты), вы должны увидеть следующее:
Активный тестовый запуск был прерван, поскольку процесс выполнения неожиданно завершился. Для дальнейшего исследования включите локальные аварийные дампы либо на уровне компьютера, либо для процесса vstest.executionengine.appcontainer.x86.exe. Перейти к более подробной информации: http://go.microsoft.com/fwlink/?linkid=232477
в Тестовый проводник, тест должен отображаться серым цветом, потому что тест не был выполнен до конца. К сожалению, из-за того, что тестовый прогон полностью завершился неудачей, если тест проходил в любое время в прошлом, тест по-прежнему отображается в Пройденные тесты группа и все еще имеет зеленую галочку рядом с ней. Положитесь на серое имя в качестве указания на то, что тест не был завершен до конца.
Я бы порекомендовал открыть ошибку на Microsoft Connect о сбивающем с толку пользовательском интерфейсе в тестовом проводнике в этом сценарии (если вы открываете ошибку, опубликуйте ссылку либо в качестве комментария к этому ответу, либо в своем вопросе, чтобы другие могли ее найти).
Других решений пока нет …