Skip to content

Commit 18728e0

Browse files
authored
Merge pull request #311 from tonyhallett/ms-runsettings-exception-handler
Ms runsettings exception handler
2 parents 63024da + a240bf7 commit 18728e0

File tree

3 files changed

+36
-1
lines changed

3 files changed

+36
-1
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
using System;
2+
using System.Xml;
3+
4+
namespace FineCodeCoverage.Engine.MsTestPlatform.CodeCoverage
5+
{
6+
public class MsTemplateReplacementException : Exception
7+
{
8+
private XmlException innerException;
9+
private string replacedRunSettingsTemplate;
10+
public MsTemplateReplacementException(XmlException innerException, string replacedRunSettingsTemplate)
11+
{
12+
this.innerException = innerException;
13+
this.replacedRunSettingsTemplate = replacedRunSettingsTemplate;
14+
}
15+
16+
public override string ToString()
17+
{
18+
return $@"${innerException}
19+
Replaced template :
20+
${replacedRunSettingsTemplate}
21+
";
22+
}
23+
24+
}
25+
}

SharedProject/Core/MsTestPlatform/CodeCoverage/RunSettingsTemplate.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22
using System;
33
using System.Collections.Generic;
44
using System.ComponentModel.Composition;
5+
using System.Xml;
56
using System.Xml.Linq;
67
using System.Xml.XPath;
78

89
namespace FineCodeCoverage.Engine.MsTestPlatform.CodeCoverage
910
{
11+
1012
[Export(typeof(IRunSettingsTemplate))]
1113
internal class RunSettingsTemplate : IRunSettingsTemplate
1214
{
@@ -186,7 +188,14 @@ bool isNetFramework
186188

187189
private string AddRecommendedYouDoNotChangeElementsIfNotProvided(string replacedRunSettingsTemplate, bool isNetFramework)
188190
{
189-
var templateDocument = XDocument.Parse(replacedRunSettingsTemplate);
191+
XDocument templateDocument = null;
192+
try
193+
{
194+
templateDocument = XDocument.Parse(replacedRunSettingsTemplate);
195+
}catch(XmlException exc)
196+
{
197+
throw new MsTemplateReplacementException(exc, replacedRunSettingsTemplate);
198+
}
190199
var msDataCollectorCodeCoverageElement = GetMsDataCollectorCodeCoverageElement(templateDocument);
191200
if (msDataCollectorCodeCoverageElement != null)
192201
{

SharedProject/SharedProject.projitems

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@
8787
<Compile Include="$(MSBuildThisFileDirectory)Core\Model\SettingsMerger.cs" />
8888
<Compile Include="$(MSBuildThisFileDirectory)Core\Model\VsBuildFCCSettingsProvider.cs" />
8989
<Compile Include="$(MSBuildThisFileDirectory)Core\MsTestPlatform\CodeCoverage\ITemplatedRunSettingsService.cs" />
90+
<Compile Include="$(MSBuildThisFileDirectory)Core\MsTestPlatform\CodeCoverage\MsTemplateReplacementException.cs" />
9091
<Compile Include="$(MSBuildThisFileDirectory)Core\MsTestPlatform\CodeCoverage\RunSettingsTemplate.cs" />
9192
<Compile Include="$(MSBuildThisFileDirectory)Core\MsTestPlatform\CodeCoverage\CustomRunSettingsTemplateProvider.cs" />
9293
<Compile Include="$(MSBuildThisFileDirectory)Core\MsTestPlatform\CodeCoverage\IRunSettingsTemplate.cs" />

0 commit comments

Comments
 (0)