Skip to content

[Bug]: TfsTestPlansAndSuitesMigrationProcessor fails on invalid queries #3021

@JDAVF

Description

@JDAVF

Version

  • I confirm that I am using the latest version

Source Version

Azure DevOps Server 2022

Target Version

Azure DevOps Service

Relevant configuration

Relevant log output

[16:04:25 INF] [16.3.1] == Plan[ 6/17] Suite[ 6/29] Cases[0/0]  - suiteid[1000  ] |     Processing DynamicTestSuite : 1000 - XXX
[16:04:25 DBG] [16.3.1] TestPlansAndSuitesMigrationContext::FindSuiteEntry 
[16:04:26 INF] [16.3.1] Team Project names dont match. We need to fix the query in dynamic test suite 1000 - XXX. 
[16:04:26 INF] [16.3.1] Replacing old project name select [System.Id], [System.WorkItemType], [System.Title], [Microsoft.VSTS.Common.Priority], [System.AssignedTo], [System.AreaPath] from WorkItemLinks where (Source.[System.TeamProject] = @project and Source.[System.WorkItemType] = 'User Story' and Source.[System.Id] = '') and (Target.[System.TeamProject] = @project and Target.[System.WorkItemType] = 'Test Case' and Target.[System.Id] in (1001, 1002)) order by [System.Id] mode (MustContain) in query XXX with new team project name XXX 
[16:04:26 INF] [16.3.1] New query is now select [System.Id], [System.WorkItemType], [System.Title], [Microsoft.VSTS.Common.Priority], [System.AssignedTo], [System.AreaPath] from WorkItemLinks where (Source.[System.TeamProject] = @project and Source.[System.WorkItemType] = 'User Story' and Source.[System.Id] = '') and (Target.[System.TeamProject] = @project and Target.[System.WorkItemType] = 'Test Case' and Target.[System.Id] in (1001, 1002)) order by [System.Id] mode (MustContain) 
[16:04:26 FTL] [16.3.1] Error while running TfsTestPlansAndSuitesMigrationProcessor 
System.FormatException: Input string was not in a correct format.
   at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
   at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
   at MigrationTools.Processors.TfsTestPlansAndSuitesMigrationProcessor.FixWorkItemIdInQuery(ITestSuiteBase targetSuitChild) in D:\a\azure-devops-migration-tools\azure-devops-migration-tools\src\MigrationTools.Clients.TfsObjectModel\Processors\TfsTestPlansAndSuitesMigrationProcessor.cs:line 733
   at MigrationTools.Processors.TfsTestPlansAndSuitesMigrationProcessor.ApplyTestSuiteQuery(ITestSuiteBase source, IDynamicTestSuite targetSuiteChild, TestManagementContext targetTestStore) in D:\a\azure-devops-migration-tools\azure-devops-migration-tools\src\MigrationTools.Clients.TfsObjectModel\Processors\TfsTestPlansAndSuitesMigrationProcessor.cs:line 363
   at MigrationTools.Processors.TfsTestPlansAndSuitesMigrationProcessor.CreateNewDynamicTestSuite(ITestSuiteBase source) in D:\a\azure-devops-migration-tools\azure-devops-migration-tools\src\MigrationTools.Clients.TfsObjectModel\Processors\TfsTestPlansAndSuitesMigrationProcessor.cs:line 495
   at MigrationTools.Processors.TfsTestPlansAndSuitesMigrationProcessor.ProcessTestSuite(ITestSuiteBase sourceSuite, ITestSuiteBase targetParent, ITestPlan targetPlan) in D:\a\azure-devops-migration-tools\azure-devops-migration-tools\src\MigrationTools.Clients.TfsObjectModel\Processors\TfsTestPlansAndSuitesMigrationProcessor.cs:line 958
   at MigrationTools.Processors.TfsTestPlansAndSuitesMigrationProcessor.ProcessTestSuite(ITestSuiteBase sourceSuite, ITestSuiteBase targetParent, ITestPlan targetPlan) in D:\a\azure-devops-migration-tools\azure-devops-migration-tools\src\MigrationTools.Clients.TfsObjectModel\Processors\TfsTestPlansAndSuitesMigrationProcessor.cs:line 1042
   at MigrationTools.Processors.TfsTestPlansAndSuitesMigrationProcessor.ProcessTestPlan(ITestPlan sourcePlan) in D:\a\azure-devops-migration-tools\azure-devops-migration-tools\src\MigrationTools.Clients.TfsObjectModel\Processors\TfsTestPlansAndSuitesMigrationProcessor.cs:line 908
   at MigrationTools.Processors.TfsTestPlansAndSuitesMigrationProcessor.InternalExecute() in D:\a\azure-devops-migration-tools\azure-devops-migration-tools\src\MigrationTools.Clients.TfsObjectModel\Processors\TfsTestPlansAndSuitesMigrationProcessor.cs:line 119
   at MigrationTools.Processors.Infrastructure.Processor.Execute() in D:\a\azure-devops-migration-tools\azure-devops-migration-tools\src\MigrationTools\Processors\Infrastructure\Processor.cs:line 99

What happened?

Someone entered a query in the test suite on source with an invalid query: ID = ''
The migration tries to parse the empty string as int and fails.

Debug in Visual Studio

  • Visual Studio Debug

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugby-designThis behaviour is the intended behaviour

    Type

    No type

    Projects

    Status

    To do

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions