Наш текущий проект включает в себя создание роботизированного блока, управляемого приложением .Net.Мы взаимодействуем с довольно большим количеством аппаратных библиотек и настроили сервер интеграции со всем подключенным к нему оборудованием для проведения ночных регрессионных тестов.
К сожалению, не все аппаратные библиотеки в нашей установке хорошо интегрируются с TFS и MSTest.
Когда мы запускаем нашу сборку и тесты с определенной библиотекой, мы имеем одно из следующих 2 поведений:
- Все тесты помечаются как пройденные в TFS, но сборка отображаетсякак частично успешный.
- TFS не показывает тестовый прогон, но журнал показывает, что все тесты пройдены, сборка помечена как частично успешная.
Глядя на журналы, мы можем видеть этиЧерез 2 строки после публикации тестов на сервере TFS: «Обрабатывать исключение MSTest» «MSTest.exe вернул код выхода 0 , указывающий, что не все тесты пройдены»
Что меня действительно удивляетявляется то, что выполнение тех же тестов с mstest из командной строки не отображает эту проблему.Более того, при запуске из командной строки MsTest возвращает 0, когда все тесты пройдены, и 1, когда возникает ошибка
Итак, мои вопросы:
- Чтоявляется ли соответствующий код возврата MSTest при успехе / неудаче
- Кроме журнала в visual studio, есть ли еще какая-либо подробная функция входа в систему?
- Есть подсказка, где искать?
Дополнительная информация: Мы заметили разницу при использовании (или нет) флага "NoIsolation" в mstest.Определенные тесты пройдут при использовании этого флага, однако другие тесты не пройдут ... Мы все еще исследуем этот флаг.
Спасибо
РЕДАКТИРОВАТЬ: Соответствующая часть журнала: 30/30пройдено тестов
Summary
-------
Test Run Completed.
Passed 30
----------
Total 30
Results file: C:\Builds\1\Galil Daily build\TestResults\D201364-W7$_D201364-W7 2011-07-05 10_23_33_Any CPU_Debug.trx
Test Settings: Default Test Settings
Waiting to publish...
Publishing results of test run D201364-W7$@D201364-W7 2011-07-05 10:23:33_Any CPU_Debug to http://mtlapp07:8080/tfs/DI_DEV...
..Publish completed successfully.
Final Property Values
Category = Galil
CommandLineArguments = /noisolation
Flavor =
MaxPriority = -1
MinPriority = -1
PathToResultsFilesRoot = C:\Builds\1\Galil Daily build\TestResults
Platform =
Publish = True
SearchPathRoot = C:\Builds\1\Galil Daily build\Binaries
TestConfigId = -1
TestConfigName =
TestContainers = System.Linq.OrderedEnumerable`2[System.String,System.String]
TestLists =
TestMetadata =
TestNames =
TestSettings =
ToolPath =
Version = -1
Final Property Values
Condition = False
Final Property Values
Condition = True
00:00
Handle MSTest Exception
MSTest.exe returned an exit code of 0 indicating that not all tests passed.
00:00
If testException is NOT TestFailureException
Initial Property Values
Condition = False
Final Property Values
Condition = False
Редактировать 2.0:
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Galil;
namespace TestProject1
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
Galil.Galil m_galil = new Galil.Galil();
m_galil.address = "COM4 19200";
string resp = m_galil.command("MTA=2.5;");
Assert.AreEqual(":", resp);
try
{
m_galil.address = "OFFLINE";
}
catch (Exception)
{
}
}
[TestMethod]
public void TestMethod2()
{
Galil.Galil m_galil = new Galil.Galil();
m_galil.address = "COM4 19200";
string resp = m_galil.command("MTA=2.0;");
Assert.AreEqual(":", resp);
try
{
m_galil.address = "OFFLINE";
}
catch (Exception)
{
}
}
}
}