Все тесты пройдены, но TFS помечает сборку как частично выполненную - PullRequest
2 голосов
/ 05 июля 2011

Наш текущий проект включает в себя создание роботизированного блока, управляемого приложением .Net.Мы взаимодействуем с довольно большим количеством аппаратных библиотек и настроили сервер интеграции со всем подключенным к нему оборудованием для проведения ночных регрессионных тестов.

К сожалению, не все аппаратные библиотеки в нашей установке хорошо интегрируются с TFS и MSTest.

Когда мы запускаем нашу сборку и тесты с определенной библиотекой, мы имеем одно из следующих 2 поведений:

  • Все тесты помечаются как пройденные в TFS, но сборка отображаетсякак частично успешный.
  • TFS не показывает тестовый прогон, но журнал показывает, что все тесты пройдены, сборка помечена как частично успешная.

Глядя на журналы, мы можем видеть этиЧерез 2 строки после публикации тестов на сервере TFS: «Обрабатывать исключение MSTest» «MSTest.exe вернул код выхода 0 , указывающий, что не все тесты пройдены»

Что меня действительно удивляетявляется то, что выполнение тех же тестов с mstest из командной строки не отображает эту проблему.Более того, при запуске из командной строки MsTest возвращает 0, когда все тесты пройдены, и 1, когда возникает ошибка

Итак, мои вопросы:

  1. Чтоявляется ли соответствующий код возврата MSTest при успехе / неудаче
  2. Кроме журнала в visual studio, есть ли еще какая-либо подробная функция входа в систему?
  3. Есть подсказка, где искать?

Дополнительная информация: Мы заметили разницу при использовании (или нет) флага "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)
        {
        }
    }
  }
}

Ответы [ 2 ]

2 голосов
/ 16 сентября 2011

На самом деле мы смогли изолировать проблему в библиотеке, которая выводила строки в стандартный поток ошибок.Так или иначе, если TFS видит что-то при стандартной ошибке, он помечает тест как частично завершенный.

2 голосов
/ 05 июля 2011

Какой соответствующий код возврата MSTest при успехе / неудаче

Код выхода 1 = не все тесты пройдены

Пример:

C: \ Program Files \ MSBuild \ Microsoft \ VisualStudio \ TeamBuild \ Microsoft.TeamFoundation.Build.targets (1377,5,1377,5): предупреждение: MSTest.exe вернул код завершения 1, указывающий, что не все тесты пройдены.

Все тесты пройдены

Пример:

Ожидание публикации ... Публикация результатов тестового прогона Company_TFSBuild_SVC @ BUILD-DEV 2011-07-0113: 15: 46_Any CPU_Release для http://company -источник: 8080 / ...
..Публикация завершена успешно.

Рядом с журналом в Visualstudio, есть ли какая-либо другая подробная функция входа в систему?

Более подробный журнал можно получить, перейдя по адресу:

Строка меню -> Инструменты -> Параметры.. -> Проекты и решения -> Детализация выходных данных сборки проекта MSBuild

Есть подсказки, где искать?

Нужно увидеть ваш лог-файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...