4

我在玩TFS構建的測試影響功能。 如果您使用的是.vsdmi文件,但只有在您使用.testsettings文件(儘管VSDMI文件包含對測試設置文件的引用)時,您似乎無法使用此功能。TFS構建和測試影響

我已經允許測試設置文件中的測試影響,等等TFS生成配置。 我需要使用VSDMi文件的原因是我創建了一個我想在CI中執行的測試列表。問題是所有版本都顯示「沒有受到影響的測試」,但我知道有一些。

我在這裏錯過了什麼嗎?請找到附加的vsdmi文件,testsettings文件和TFS構建配置的快照。

Config

這裏是.testsettings文件的內容:

<?xml version="1.0" encoding="UTF-8"?> 
<TestSettings name="Master" id="68af9170-92f5-49d8-83dd-827359a79042" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010"> 
    <Description>These are default test settings for a local test run.</Description> 
    <Deployment> 
    <DeploymentItem filename="..\Common\Terra.Environment.Common.Data.Test\TpEnvFileParser\InputFiles\" /> 
    <DeploymentItem filename="..\Common\Terra.Environment.Fake\FakeData\HSW\Resources" /> 
    <DeploymentItem filename="..\Tpie.Engines.Build\Tpie.Engines.Build.Test\ExpectedFiles\" /> 
    <DeploymentItem filename="..\Tpie.Engines.Build\Tpie.Engines.Build.Test\Resources\" /> 
    <DeploymentItem filename="..\Common\Terra.Environment.Common.Model\bin\Debug\TerraEntitiesModel.ssdl" /> 
    <DeploymentItem filename="..\Common\Terra.Environment.Common.Model\bin\Debug\TerraEntitiesModel.csdl" /> 
    <DeploymentItem filename="..\Common\Terra.Environment.Common.Data.Test\PListFileParser\InputFiles\" /> 
    <DeploymentItem filename="..\Common\Terra.Environment.Common.Model\bin\Debug\TerraEntitiesModel.msl" /> 
    <DeploymentItem filename="..\Tpie.Client\Tpie.Client.Common.Test\ExcelParsers\InputFiles\" /> 
    <DeploymentItem filename="..\Tpie.Engines.Build\Tpie.Engines.Build.TestProgram\Templates\" /> 
    </Deployment> 
    <Execution> 
    <ExecutionThread apartmentState="MTA" /> 
    <Timeouts runTimeout="1800000" testTimeout="300000" /> 
    <TestTypeSpecific> 
     <UnitTestRunConfig testTypeId="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b"> 
     <AssemblyResolution> 
      <TestDirectory useLoadContext="true" /> 
     </AssemblyResolution> 
     </UnitTestRunConfig> 
     <WebTestRunConfiguration testTypeId="4e7599fa-5ecb-43e9-a887-cd63cf72d207"> 
     <Browser name="Internet Explorer 7.0"> 
      <Headers> 
      <Header name="User-Agent" value="Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" /> 
      <Header name="Accept" value="*/*" /> 
      <Header name="Accept-Language" value="{{$IEAcceptLanguage}}" /> 
      <Header name="Accept-Encoding" value="GZIP" /> 
      </Headers> 
     </Browser> 
     </WebTestRunConfiguration> 
    </TestTypeSpecific> 
    <AgentRule name="LocalMachineDefaultRole"> 
     <DataCollectors> 
     <DataCollector uri="datacollector://Microsoft/TestImpact/1.0" assemblyQualifiedName="Microsoft.VisualStudio.TraceCollector.TestImpactDataCollector, Microsoft.VisualStudio.TraceCollector, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> 
     </DataCollector> 
     </DataCollectors> 
    </AgentRule> 
    </Execution> 
</TestSettings> 

這裏是.vsmdi文件:

<?xml version="1.0" encoding="UTF-8"?> 
<TestLists xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010"> 
    <TestList name="TPIE Auto Build" id="2cbc1525-8079-4959-a126-4d4fb8fdb803" parentListId="8c43106b-9dc1-4907-a29f-aa66a61bf5b6"> 
    <TestLinks> 
     <TestLink id="ee8dae77-c23e-df6b-c6b5-4be930087750" name="LevelTestConditionGroupCheckCalculationDataTypeVoltageTest" storage="..\tpie.client\tpie.client.common.test\bin\debug\tpie.client.common.test.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
     <TestLink id="74441000-f8e5-ac1b-fbd6-bb94da0bf3ce" name="LevelPowerSequenceBlockCheckSequenceElementTest" storage="..\tpie.client\tpie.client.common.test\bin\debug\tpie.client.common.test.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
     <TestLink id="afb21bed-4eff-9f9f-7e58-c72e7d133b32" name="TestGetMiscEnvironmentVariables" storage="..\server\terra.binmatrix.server.test\bin\debug\terra.server.bl.test.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    </TestLinks> 
    </TestList> 
    <TestList name="Lists of Tests" id="8c43106b-9dc1-4907-a29f-aa66a61bf5b6"> 
    <RunConfiguration id="68af9170-92f5-49d8-83dd-827359a79042" name="Master" storage="master.testsettings" type="Microsoft.VisualStudio.TestTools.Common.TestRunConfiguration, Microsoft.VisualStudio.QualityTools.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    </TestList> 
</TestLists> 

感謝, 布西

回答

2

它是有點棘手,但它的工作原理。 如果要運行測試影響分析,則需要設置Disable Test = trueAnalyse Test Impact = true

我做了以下

  • 創建CI生成類型與vsmdi
  • 設置構建運行測試(關閉測試= FALSE)
  • 選擇vsmdi
  • 運行兩個或三個版本收集測試數據
  • 切換像上面描述的標誌

enter image description here

+0

非常感謝您的回覆。恐怕您的解決方案對我無效。我改爲禁用測試= True,並沒有做到這一點,只是禁用了測試。我也看到你的'複製到輸出文件夾'被設置爲true。我也嘗試過,但沒有奏效。 – baruchl 2012-02-08 05:17:35

0

您需要使用以下步驟來運行測試。

  1. 請禁用測試=假
  2. Anyalyze試驗衝擊= TRUE;
  3. 確保在運行測試時,您的構建正在從vsmdi文件中提到的指定位置獲取測試dll。
  4. 調試您的構建日誌集記錄詳細度=診斷。 通過這個你可以看到日誌你的構建是否得到測試dll或不。