Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitc676360

Browse files
committed
Add support for configuring maximum print lengths in assertion messages
1 parentc157d6f commitc676360

File tree

3 files changed

+138
-2
lines changed

3 files changed

+138
-2
lines changed

‎Versions.props‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010
<NerdbankGitVersioningVersion>3.7.115</NerdbankGitVersioningVersion>
1111
<NSubstituteVersion>5.3.0</NSubstituteVersion>
1212
<TunnelVisionLabsReferenceAssemblyAnnotatorVersion>1.0.0-alpha.160</TunnelVisionLabsReferenceAssemblyAnnotatorVersion>
13-
<XunitAnalyzersVersion>1.19.0</XunitAnalyzersVersion>
13+
<XunitAnalyzersVersion>1.20.0-pre.4</XunitAnalyzersVersion>
1414
<XunitV2Version>2.9.3</XunitV2Version>
15-
<XunitV3Version>1.0.2-pre.4</XunitV3Version>
15+
<XunitV3Version>1.1.0-pre.3</XunitV3Version>
1616
</PropertyGroup>
1717

1818
</Project>

‎src/xunit.runner.visualstudio/Utility/RunSettings.cs‎

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ namespace Xunit.Runner.VisualStudio;
99
internalclassRunSettings
1010
{
1111
publicAppDomainSupport?AppDomain{get;set;}
12+
publicint?AssertEquivalentMaxDepth{get;set;}
1213
publicstring?Culture{get;set;}
1314
publicboolDesignMode{get;set;}=false;
1415
publicbool?DiagnosticMessages{get;set;}
@@ -25,6 +26,10 @@ internal class RunSettings
2526
publicbool?ParallelizeAssembly{get;set;}
2627
publicbool?ParallelizeTestCollections{get;set;}
2728
publicbool?PreEnumerateTheories{get;set;}
29+
publicint?PrintMaxEnumerableLength{get;set;}
30+
publicint?PrintMaxObjectDepth{get;set;}
31+
publicint?PrintMaxObjectMemberCount{get;set;}
32+
publicint?PrintMaxStringLength{get;set;}
2833
publicstring?ReporterSwitch{get;set;}
2934
publicint?Seed{get;set;}
3035
publicbool?ShadowCopy{get;set;}
@@ -36,6 +41,8 @@ public void CopyTo(TestAssemblyConfiguration configuration)
3641
{
3742
if(AppDomain.HasValue)
3843
configuration.AppDomain=AppDomain;
44+
if(AssertEquivalentMaxDepth.HasValue)
45+
configuration.AssertEquivalentMaxDepth=AssertEquivalentMaxDepth;
3946
if(Cultureis notnull)
4047
configuration.Culture=Culture.ToUpperInvariant()switch
4148
{
@@ -69,6 +76,14 @@ public void CopyTo(TestAssemblyConfiguration configuration)
6976
configuration.ParallelizeTestCollections=ParallelizeTestCollections;
7077
if(PreEnumerateTheories.HasValue)
7178
configuration.PreEnumerateTheories=PreEnumerateTheories;
79+
if(PrintMaxEnumerableLength.HasValue)
80+
configuration.PrintMaxEnumerableLength=PrintMaxEnumerableLength;
81+
if(PrintMaxObjectDepth.HasValue)
82+
configuration.PrintMaxObjectDepth=PrintMaxObjectDepth;
83+
if(PrintMaxObjectMemberCount.HasValue)
84+
configuration.PrintMaxObjectMemberCount=PrintMaxObjectMemberCount;
85+
if(PrintMaxStringLength.HasValue)
86+
configuration.PrintMaxStringLength=PrintMaxStringLength;
7287
if(Seed.HasValue)
7388
configuration.Seed=Seed;
7489
if(ShadowCopy.HasValue)
@@ -99,6 +114,10 @@ public static RunSettings Parse(string? settingsXml)
99114
if(Enum.TryParse<AppDomainSupport>(appDomainString,ignoreCase:true,outvarappDomain))
100115
result.AppDomain=appDomain;
101116

117+
varassertEquivalentMaxDepthString=xunitElement.Element(Constants.Xunit.AssertEquivalentMaxDepth)?.Value;
118+
if(int.TryParse(assertEquivalentMaxDepthString,outvarassertEquivalentMaxDepth)&&assertEquivalentMaxDepth>=1)
119+
result.AssertEquivalentMaxDepth=assertEquivalentMaxDepth;
120+
102121
result.Culture=xunitElement.Element(Constants.Xunit.Culture)?.Value;
103122

104123
vardiagnosticMessagesString=xunitElement.Element(Constants.Xunit.DiagnosticMessages)?.Value;
@@ -177,6 +196,22 @@ public static RunSettings Parse(string? settingsXml)
177196
if(bool.TryParse(preEnumerateTheoriesString,outvarpreEnumerateTheories))
178197
result.PreEnumerateTheories=preEnumerateTheories;
179198

199+
varprintMaxEnumerableLengthString=xunitElement.Element(Constants.Xunit.PrintMaxEnumerableLength)?.Value;
200+
if(int.TryParse(printMaxEnumerableLengthString,outvarprintMaxEnumerableLength)&&printMaxEnumerableLength>=0)
201+
result.PrintMaxEnumerableLength=printMaxEnumerableLength;
202+
203+
varprintMaxObjectDepthString=xunitElement.Element(Constants.Xunit.PrintMaxObjectDepth)?.Value;
204+
if(int.TryParse(printMaxObjectDepthString,outvarprintMaxObjectDepth)&&printMaxObjectDepth>=0)
205+
result.PrintMaxObjectDepth=printMaxObjectDepth;
206+
207+
varprintMaxObjectMemberCountString=xunitElement.Element(Constants.Xunit.PrintMaxObjectMemberCount)?.Value;
208+
if(int.TryParse(printMaxObjectMemberCountString,outvarprintMaxObjectMemberCount)&&printMaxObjectMemberCount>=0)
209+
result.PrintMaxObjectMemberCount=printMaxObjectMemberCount;
210+
211+
varprintMaxStringLengthString=xunitElement.Element(Constants.Xunit.PrintMaxStringLength)?.Value;
212+
if(int.TryParse(printMaxStringLengthString,outvarprintMaxStringLength)&&printMaxStringLength>=0)
213+
result.PrintMaxStringLength=printMaxStringLength;
214+
180215
varreporterSwitchString=xunitElement.Element(Constants.Xunit.ReporterSwitch)?.Value;
181216
if(reporterSwitchStringis notnull)
182217
result.ReporterSwitch=reporterSwitchString;
@@ -263,6 +298,7 @@ public static class RunConfiguration
263298
publicstaticclassXunit
264299
{
265300
publicconststringAppDomain=nameof(AppDomain);
301+
publicconststringAssertEquivalentMaxDepth=nameof(AssertEquivalentMaxDepth);
266302
publicconststringCulture=nameof(Culture);
267303
publicconststringDiagnosticMessages=nameof(DiagnosticMessages);
268304
publicconststringExplicit=nameof(Explicit);
@@ -278,6 +314,10 @@ public static class Xunit
278314
publicconststringParallelizeAssembly=nameof(ParallelizeAssembly);
279315
publicconststringParallelizeTestCollections=nameof(ParallelizeTestCollections);
280316
publicconststringPreEnumerateTheories=nameof(PreEnumerateTheories);
317+
publicconststringPrintMaxEnumerableLength=nameof(PrintMaxEnumerableLength);
318+
publicconststringPrintMaxObjectDepth=nameof(PrintMaxObjectDepth);
319+
publicconststringPrintMaxObjectMemberCount=nameof(PrintMaxObjectMemberCount);
320+
publicconststringPrintMaxStringLength=nameof(PrintMaxStringLength);
281321
publicconststringSeed=nameof(Seed);
282322
publicconststringReporterSwitch=nameof(ReporterSwitch);
283323
publicconststringShadowCopy=nameof(ShadowCopy);

‎test/test.xunit.runner.visualstudio/RunSettingsTests.cs‎

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
externaliasVSTestAdapter;
22

33
usingSystem;
4+
usingSystem.Collections.Generic;
45
usingXunit;
56
usingXunit.Runner.Common;
67
usingXunit.Sdk;
@@ -11,6 +12,7 @@ public class RunSettingsTests
1112
voidAssertDefaultValues(RunSettingsrunSettings)
1213
{
1314
Assert.Null(runSettings.AppDomain);
15+
Assert.Null(runSettings.AssertEquivalentMaxDepth);
1416
Assert.False(runSettings.DesignMode);
1517
Assert.Null(runSettings.DiagnosticMessages);
1618
Assert.Null(runSettings.FailSkips);
@@ -24,6 +26,10 @@ void AssertDefaultValues(RunSettings runSettings)
2426
Assert.Null(runSettings.ParallelizeAssembly);
2527
Assert.Null(runSettings.ParallelizeTestCollections);
2628
Assert.Null(runSettings.PreEnumerateTheories);
29+
Assert.Null(runSettings.PrintMaxEnumerableLength);
30+
Assert.Null(runSettings.PrintMaxObjectDepth);
31+
Assert.Null(runSettings.PrintMaxObjectMemberCount);
32+
Assert.Null(runSettings.PrintMaxStringLength);
2733
Assert.Null(runSettings.ReporterSwitch);
2834
Assert.Null(runSettings.ShadowCopy);
2935
Assert.Null(runSettings.ShowLiveOutput);
@@ -169,6 +175,26 @@ public void AppDomain(string value, AppDomainSupport? expected)
169175
Assert.Equal(expected,runSettings.AppDomain);
170176
}
171177

178+
[Theory]
179+
[InlineData("blarch",null)]
180+
[InlineData("0",null)]
181+
[InlineData("1",1)]
182+
[InlineData("42",42)]
183+
publicvoidAssertEquivalentMaxDepth(stringvalue,int?expected)
184+
{
185+
stringsettingsXml=
186+
$@"<?xml version=""1.0"" encoding=""utf-8""?>
187+
<RunSettings>
188+
<xUnit>
189+
<AssertEquivalentMaxDepth>{value}</AssertEquivalentMaxDepth>
190+
</xUnit>
191+
</RunSettings>";
192+
193+
varrunSettings=RunSettings.Parse(settingsXml);
194+
195+
Assert.Equal(expected,runSettings.AssertEquivalentMaxDepth);
196+
}
197+
172198
[Theory]
173199
[InlineData(0,null)]
174200
[InlineData(1,1)]
@@ -260,6 +286,76 @@ public void MethodDisplayOptions(string value, TestMethodDisplayOptions? expecte
260286
Assert.Equal(expected,runSettings.MethodDisplayOptions);
261287
}
262288

289+
publicstaticIEnumerable<TheoryDataRow<string,int?>>ZeroOrMore=[("blarch",null),("-1",null),("0",0),("42",42)];
290+
291+
[Theory]
292+
[MemberData(nameof(ZeroOrMore))]
293+
publicvoidPrintMaxEnumerableLength(stringvalue,int?expected)
294+
{
295+
stringsettingsXml=
296+
$@"<?xml version=""1.0"" encoding=""utf-8""?>
297+
<RunSettings>
298+
<xUnit>
299+
<PrintMaxEnumerableLength>{value}</PrintMaxEnumerableLength>
300+
</xUnit>
301+
</RunSettings>";
302+
303+
varrunSettings=RunSettings.Parse(settingsXml);
304+
305+
Assert.Equal(expected,runSettings.PrintMaxEnumerableLength);
306+
}
307+
308+
[Theory]
309+
[MemberData(nameof(ZeroOrMore))]
310+
publicvoidPrintMaxObjectDepth(stringvalue,int?expected)
311+
{
312+
stringsettingsXml=
313+
$@"<?xml version=""1.0"" encoding=""utf-8""?>
314+
<RunSettings>
315+
<xUnit>
316+
<PrintMaxObjectDepth>{value}</PrintMaxObjectDepth>
317+
</xUnit>
318+
</RunSettings>";
319+
320+
varrunSettings=RunSettings.Parse(settingsXml);
321+
322+
Assert.Equal(expected,runSettings.PrintMaxObjectDepth);
323+
}
324+
325+
[Theory]
326+
[MemberData(nameof(ZeroOrMore))]
327+
publicvoidPrintMaxObjectMemberCount(stringvalue,int?expected)
328+
{
329+
stringsettingsXml=
330+
$@"<?xml version=""1.0"" encoding=""utf-8""?>
331+
<RunSettings>
332+
<xUnit>
333+
<PrintMaxObjectMemberCount>{value}</PrintMaxObjectMemberCount>
334+
</xUnit>
335+
</RunSettings>";
336+
337+
varrunSettings=RunSettings.Parse(settingsXml);
338+
339+
Assert.Equal(expected,runSettings.PrintMaxObjectMemberCount);
340+
}
341+
342+
[Theory]
343+
[MemberData(nameof(ZeroOrMore))]
344+
publicvoidPrintMaxStringLength(stringvalue,int?expected)
345+
{
346+
stringsettingsXml=
347+
$@"<?xml version=""1.0"" encoding=""utf-8""?>
348+
<RunSettings>
349+
<xUnit>
350+
<PrintMaxStringLength>{value}</PrintMaxStringLength>
351+
</xUnit>
352+
</RunSettings>";
353+
354+
varrunSettings=RunSettings.Parse(settingsXml);
355+
356+
Assert.Equal(expected,runSettings.PrintMaxStringLength);
357+
}
358+
263359
[Theory]
264360
[InlineData(false)]
265361
[InlineData(true)]

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp