Skip to content

Commit ceacf08

Browse files
authored
Detect parameters in mstest (#1378)
1 parent ffd2543 commit ceacf08

15 files changed

+30
-114
lines changed

docs/explicit-targets.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ public Task WithTargets() =>
100100
name: "targetName")
101101
]);
102102
```
103-
<sup><a href='/src/Verify.MSTest.Tests/Tests.cs#L130-L147' title='Snippet source file'>snippet source</a> | <a href='#snippet-ExplicitTargetsMSTest' title='Start of snippet'>anchor</a></sup>
103+
<sup><a href='/src/Verify.MSTest.Tests/Tests.cs#L125-L142' title='Snippet source file'>snippet source</a> | <a href='#snippet-ExplicitTargetsMSTest' title='Start of snippet'>anchor</a></sup>
104104
<!-- endSnippet -->
105105

106106

docs/mdsource/parameterised-mstest.source.md

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@
55

66
`UseParameters()` controls what parameters are used when naming files.
77

8-
Verify.MSTest does not detect the parametrised arguments, as such `UseParameters()` is required.
9-
10-
snippet: UseParametersMSTest
8+
Verify.MSTest automatically detects the method parameters. So `UseParameters()` is not required unless using custom parameters.
119

1210
If not all parameters are required, a subset can be passed in. In this scenario, the parameters passed in will match with the method parameter names from the start. For example the following will result in a file named `ParametersSample.UseParametersSubSet_arg1=Value1_arg2=Value2.verified.txt`
1311

@@ -18,22 +16,13 @@ If the number of parameters passed to `UseParameters()` is greater than the numb
1816

1917
### DataRow
2018

21-
22-
#### Instance
23-
2419
snippet: DataRowInstanceMSTest
2520

2621

27-
#### Fluent
28-
29-
snippet: DataRowFluentMSTest
30-
31-
3222
## Overriding text used for parameters
3323

3424
include: override-parameters-text
3525

36-
3726
snippet: UseTextForParametersMSTest
3827

3928

docs/parameterised-mstest.md

Lines changed: 9 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,7 @@ To change this file edit the source file and then run MarkdownSnippets.
1212

1313
`UseParameters()` controls what parameters are used when naming files.
1414

15-
Verify.MSTest does not detect the parametrised arguments, as such `UseParameters()` is required.
16-
17-
<!-- snippet: UseParametersMSTest -->
18-
<a id='snippet-UseParametersMSTest'></a>
19-
```cs
20-
[DataTestMethod]
21-
[DataRow("Value1")]
22-
[DataRow("Value2")]
23-
public Task UseParametersUsage(string arg)
24-
{
25-
var somethingToVerify = $"{arg} some text";
26-
return Verify(somethingToVerify)
27-
.UseParameters(arg);
28-
}
29-
```
30-
<sup><a href='/src/Verify.MSTest.Tests/Snippets/ParametersSample.cs#L131-L143' title='Snippet source file'>snippet source</a> | <a href='#snippet-UseParametersMSTest' title='Start of snippet'>anchor</a></sup>
31-
<!-- endSnippet -->
15+
Verify.MSTest automatically detects the method parameters. So `UseParameters()` is not required unless using custom parameters.
3216

3317
If not all parameters are required, a subset can be passed in. In this scenario, the parameters passed in will match with the method parameter names from the start. For example the following will result in a file named `ParametersSample.UseParametersSubSet_arg1=Value1_arg2=Value2.verified.txt`
3418

@@ -44,47 +28,24 @@ public Task UseParametersSubSet(string arg1, string arg2, string arg3)
4428
.UseParameters(arg1, arg2);
4529
}
4630
```
47-
<sup><a href='/src/Verify.MSTest.Tests/Snippets/ParametersSample.cs#L145-L156' title='Snippet source file'>snippet source</a> | <a href='#snippet-UseParametersSubSetMSTest' title='Start of snippet'>anchor</a></sup>
31+
<sup><a href='/src/Verify.MSTest.Tests/Snippets/ParametersSample.cs#L114-L125' title='Snippet source file'>snippet source</a> | <a href='#snippet-UseParametersSubSetMSTest' title='Start of snippet'>anchor</a></sup>
4832
<!-- endSnippet -->
4933

5034
If the number of parameters passed to `UseParameters()` is greater than the number of parameters in the test method, an exception will be thrown.
5135

5236

5337
### DataRow
5438

55-
56-
#### Instance
57-
5839
<!-- snippet: DataRowInstanceMSTest -->
5940
<a id='snippet-DataRowInstanceMSTest'></a>
6041
```cs
6142
[DataTestMethod]
6243
[DataRow("Value1")]
6344
[DataRow("Value2")]
64-
public Task DataRowUsage(string arg)
65-
{
66-
var settings = new VerifySettings();
67-
settings.UseParameters(arg);
68-
return Verify(arg, settings);
69-
}
70-
```
71-
<sup><a href='/src/Verify.MSTest.Tests/Snippets/ParametersSample.cs#L14-L26' title='Snippet source file'>snippet source</a> | <a href='#snippet-DataRowInstanceMSTest' title='Start of snippet'>anchor</a></sup>
72-
<!-- endSnippet -->
73-
74-
75-
#### Fluent
76-
77-
<!-- snippet: DataRowFluentMSTest -->
78-
<a id='snippet-DataRowFluentMSTest'></a>
79-
```cs
80-
[DataTestMethod]
81-
[DataRow("Value1")]
82-
[DataRow("Value2")]
83-
public Task DataRowUsageFluent(string arg) =>
84-
Verify(arg)
85-
.UseParameters(arg);
45+
public Task DataRowUsage(string arg) =>
46+
Verify(arg);
8647
```
87-
<sup><a href='/src/Verify.MSTest.Tests/Snippets/ParametersSample.cs#L28-L37' title='Snippet source file'>snippet source</a> | <a href='#snippet-DataRowFluentMSTest' title='Start of snippet'>anchor</a></sup>
48+
<sup><a href='/src/Verify.MSTest.Tests/Snippets/ParametersSample.cs#L14-L22' title='Snippet source file'>snippet source</a> | <a href='#snippet-DataRowInstanceMSTest' title='Start of snippet'>anchor</a></sup>
8849
<!-- endSnippet -->
8950

9051

@@ -108,7 +69,6 @@ For the fluent case:
10869
* TheTest.UseTextForParametersFluent_Value1.verified.txt
10970
* TheTest.UseTextForParametersFluent_Value2.verified.txt<!-- endInclude -->
11071

111-
11272
<!-- snippet: UseTextForParametersMSTest -->
11373
<a id='snippet-UseTextForParametersMSTest'></a>
11474
```cs
@@ -158,7 +118,7 @@ public Task IgnoreParametersForVerified(string arg)
158118
return Verify("value", settings);
159119
}
160120
```
161-
<sup><a href='/src/Verify.MSTest.Tests/Snippets/ParametersSample.cs#L39-L51' title='Snippet source file'>snippet source</a> | <a href='#snippet-IgnoreParametersForVerifiedMSTest' title='Start of snippet'>anchor</a></sup>
121+
<sup><a href='/src/Verify.MSTest.Tests/Snippets/ParametersSample.cs#L24-L36' title='Snippet source file'>snippet source</a> | <a href='#snippet-IgnoreParametersForVerifiedMSTest' title='Start of snippet'>anchor</a></sup>
162122
<!-- endSnippet -->
163123

164124

@@ -174,7 +134,7 @@ public Task IgnoreParametersForVerifiedFluent(string arg) =>
174134
Verify("value")
175135
.IgnoreParametersForVerified(arg);
176136
```
177-
<sup><a href='/src/Verify.MSTest.Tests/Snippets/ParametersSample.cs#L53-L62' title='Snippet source file'>snippet source</a> | <a href='#snippet-IgnoreParametersForVerifiedFluentMSTest' title='Start of snippet'>anchor</a></sup>
137+
<sup><a href='/src/Verify.MSTest.Tests/Snippets/ParametersSample.cs#L38-L47' title='Snippet source file'>snippet source</a> | <a href='#snippet-IgnoreParametersForVerifiedFluentMSTest' title='Start of snippet'>anchor</a></sup>
178138
<!-- endSnippet -->
179139

180140

@@ -198,7 +158,7 @@ public Task IgnoreParametersForVerifiedCustomParams(string arg)
198158
return Verify("value", settings);
199159
}
200160
```
201-
<sup><a href='/src/Verify.MSTest.Tests/Snippets/ParametersSample.cs#L64-L76' title='Snippet source file'>snippet source</a> | <a href='#snippet-IgnoreParametersForVerifiedCustomParamsMSTest' title='Start of snippet'>anchor</a></sup>
161+
<sup><a href='/src/Verify.MSTest.Tests/Snippets/ParametersSample.cs#L49-L61' title='Snippet source file'>snippet source</a> | <a href='#snippet-IgnoreParametersForVerifiedCustomParamsMSTest' title='Start of snippet'>anchor</a></sup>
202162
<!-- endSnippet -->
203163

204164

@@ -214,7 +174,7 @@ public Task IgnoreParametersForVerifiedFluentCustomParams(string arg) =>
214174
Verify("value")
215175
.IgnoreParametersForVerified($"Number{arg}");
216176
```
217-
<sup><a href='/src/Verify.MSTest.Tests/Snippets/ParametersSample.cs#L78-L87' title='Snippet source file'>snippet source</a> | <a href='#snippet-IgnoreParametersForVerifiedCustomParamsFluentMSTest' title='Start of snippet'>anchor</a></sup>
177+
<sup><a href='/src/Verify.MSTest.Tests/Snippets/ParametersSample.cs#L63-L72' title='Snippet source file'>snippet source</a> | <a href='#snippet-IgnoreParametersForVerifiedCustomParamsFluentMSTest' title='Start of snippet'>anchor</a></sup>
218178
<!-- endSnippet -->
219179

220180

src/Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<Project>
33
<PropertyGroup>
44
<NoWarn>CA1822;CS1591;CS0649;xUnit1026;xUnit1013;CS1573;VerifyTestsProjectDir;VerifySetParameters;PolyFillTargetsForNuget</NoWarn>
5-
<Version>28.6.1</Version>
5+
<Version>28.7.0</Version>
66
<ImplicitUsings>enable</ImplicitUsings>
77
<LangVersion>preview</LangVersion>
88
<AssemblyVersion>1.0.0</AssemblyVersion>

src/Directory.Packages.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@
1919
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.0" />
2020
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
2121
<PackageVersion Include="NUnit" Version="4.3.0" />
22-
<PackageVersion Include="MSTest" Version="3.6.4" />
23-
<PackageVersion Include="MSTest.TestFramework" Version="3.6.4" />
22+
<PackageVersion Include="MSTest" Version="3.7.0" />
23+
<PackageVersion Include="MSTest.TestFramework" Version="3.7.0" />
2424
<PackageVersion Include="NUnit3TestAdapter" Version="4.6.0" />
2525
<PackageVersion Include="Polyfill" Version="7.8.0" />
2626
<PackageVersion Include="ProjectDefaults" Version="1.0.147" />

src/Verify.MSTest.Tests/Snippets/ParametersHashSample.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ public partial class ParametersHashSample
99
public Task HashParametersUsage(string arg)
1010
{
1111
var settings = new VerifySettings();
12-
settings.UseParameters(arg);
1312
settings.HashParameters();
1413
return Verify(arg, settings);
1514
}
@@ -19,7 +18,6 @@ public Task HashParametersUsage(string arg)
1918
[DataRow("Value2")]
2019
public Task HashParametersUsageFluent(string arg) =>
2120
Verify(arg)
22-
.UseParameters(arg)
2321
.HashParameters();
2422
}
2523

src/Verify.MSTest.Tests/Snippets/ParametersSample.DataRowUsageFluent_arg=Value1.verified.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

src/Verify.MSTest.Tests/Snippets/ParametersSample.DataRowUsageFluent_arg=Value2.verified.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

src/Verify.MSTest.Tests/Snippets/ParametersSample.cs

Lines changed: 2 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,8 @@ public Task UseTextForParameters(string arg) =>
1616
[DataTestMethod]
1717
[DataRow("Value1")]
1818
[DataRow("Value2")]
19-
public Task DataRowUsage(string arg)
20-
{
21-
var settings = new VerifySettings();
22-
settings.UseParameters(arg);
23-
return Verify(arg, settings);
24-
}
25-
26-
#endregion
27-
28-
#region DataRowFluentMSTest
29-
30-
[DataTestMethod]
31-
[DataRow("Value1")]
32-
[DataRow("Value2")]
33-
public Task DataRowUsageFluent(string arg) =>
34-
Verify(arg)
35-
.UseParameters(arg);
19+
public Task DataRowUsage(string arg) =>
20+
Verify(arg);
3621

3722
#endregion
3823

@@ -94,7 +79,6 @@ public Task IgnoreParametersForVerifiedFluentCustomParams(string arg) =>
9479
public Task IgnoreParameters(string arg)
9580
{
9681
var settings = new VerifySettings();
97-
settings.UseParameters(arg);
9882
settings.IgnoreParameters(nameof(arg));
9983
return Verify("value", settings);
10084
}
@@ -108,7 +92,6 @@ public Task IgnoreParameters(string arg)
10892
[DataRow("Two")]
10993
public Task IgnoreParametersFluent(string arg) =>
11094
Verify("value")
111-
.UseParameters(arg)
11295
.IgnoreParameters(nameof(arg));
11396

11497
#endregion
@@ -128,20 +111,6 @@ public Task IgnoreParametersCustomParams(string arg)
128111

129112
#endregion
130113

131-
#region UseParametersMSTest
132-
133-
[DataTestMethod]
134-
[DataRow("Value1")]
135-
[DataRow("Value2")]
136-
public Task UseParametersUsage(string arg)
137-
{
138-
var somethingToVerify = $"{arg} some text";
139-
return Verify(somethingToVerify)
140-
.UseParameters(arg);
141-
}
142-
143-
#endregion
144-
145114
#region UseParametersSubSetMSTest
146115

147116
[DataTestMethod]
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+


src/Verify.MSTest.Tests/Snippets/ParametersTests.cs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,16 @@ public partial class ParametersTests
55
//[DataRow("1.1")]
66
//public async Task Decimal(decimal arg)
77
//{
8-
// await Verify(arg)
9-
// .UseParameters(arg);
8+
// await Verify(arg);
109
//}
1110

1211
[DataTestMethod]
1312
[DataRow((float) 1.1)]
1413
public Task Float(float arg) =>
15-
Verify(arg)
16-
.UseParameters(arg);
14+
Verify(arg);
1715

1816
[DataTestMethod]
1917
[DataRow(1.1d)]
2018
public Task Double(double arg) =>
21-
Verify(arg)
22-
.UseParameters(arg);
19+
Verify(arg);
2320
}

src/Verify.MSTest.Tests/Tests.MissingParameter.verified.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+


src/Verify.MSTest.Tests/Tests.cs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,6 @@ static void DerivePathInfo()
2020
#endregion
2121
}
2222

23-
[DataTestMethod]
24-
[DataRow("Value1")]
25-
public Task MissingParameter(string arg) =>
26-
Verify("Foo");
27-
2823
[DataTestMethod]
2924
[DataRow("Value1")]
3025
public Task UseFileNameWithParam(string arg) =>

src/Verify.MSTest/Verifier.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,15 @@ static InnerVerifier BuildVerifier(VerifySettings settings, string sourceFile, b
3737
var type = context.TestClass;
3838
var method = context.Method;
3939

40+
if (!settings.HasParameters)
41+
{
42+
var data = context.TestContext.TestData;
43+
if (data != null)
44+
{
45+
settings.SetParameters(data);
46+
}
47+
}
48+
4049
VerifierSettings.AssignTargetAssembly(assembly);
4150
var pathInfo = GetPathInfo(sourceFile, type, method);
4251
return new(

0 commit comments

Comments
 (0)