我們當前的項目涉及構建由.Net應用程序控制的自動化盒子。我們連接了很多硬件庫,並且我們建立了一個集成服務器,並連接所有硬件以運行每晚的迴歸測試。所有測試都通過,但TFS將構建標記爲部分成功
不幸的是,並非我們設置中的所有硬件庫都與TFS和MSTest很好地集成在一起。
當我們具有一定librairy運行我們的構建和測試中,我們要麼這兩個行爲之一:
- 在 TFS通過,但構建如圖 部分成功的所有測試都martked。
- TFS顯示沒有測試運行,但日誌顯示所有測試通過,構建標記爲部分succeeede。在日誌
來看,我們可以看到這兩條線的測試後發佈到TFS服務器, 「處理MSTest的異常」 「MSTest.exe返回0的退出代碼表明,並非所有的測試通過「
真正令我困惑的是,使用mstest從命令行運行相同的測試不會顯示此問題。 Futhermore,在命令行中運行時,MSTEST 返回0時通過了所有測試和1時出現錯誤
所以我的問題是:
- 什麼是成功適當MSTest的返回碼/失敗
- 除了登錄visual studio之外,還有其他詳細的登錄功能嗎?
- 任何線索在哪裏看?
附加信息:在mstest中使用(或不)「NoIsolation」標誌時,我們確實注意到了差異。使用該標誌時特定的測試會通過,但其他測試將失敗......我們仍在調查那一個。
由於
編輯:日誌的相關部分: 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 [email protected] 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)
{
}
}
}
}
你可以發佈你的日誌嗎? –