Impact of TFS Build and Test

I play with the Test Impact feature to build TFS. It seems that you cannot use this function if you use the .vsdmi file, but only if you use the .testsettings file (although the VSDMI file contains a link to the test parameter file).

I enabled Test Impact in the test settings file and so on in the TFS configuration configuration. The reason I need to use the VSDMi file is because I created a test list that I want to run in CI. The problem is that all builds show the "No Impacted Test", although I know there are some.

Am I missing something? Attach the vsdmi file, test settings file, and a snapshot of the TFS build configuration.

Config

Here is the contents of the .testsettings file:

<?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> 

And here is the .vsmdi file:

 <?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> 

Thanks Busy

+4
source share
2 answers

It is a bit complicated, but it works. If you want to run analysis of test results, you need to set Disable Test = true and Analyse Test Impact = true .

I did the following

  • create CI build type using vsmdi
  • configure the assembly to run tests (Disable Tests = false)
  • select vsmdi
  • run two or three assemblies to collect test data
  • set the flags as described above.

enter image description here

+2
source

To run the test you need to follow these steps.

  • Make Disable Tests = False
  • Anyalyze Test Impact = true;
  • make sure that when you run the test, your assembly gets the test DLL from the specified location, as mentioned in the vsmdi file.
  • when debugging your build log. Logging Verbosity = Diagnostic. through this you can see the log whether your assembly will receive a test dll or not.
0
source

Source: https://habr.com/ru/post/1393864/


All Articles