Skip to content

Commit b3ee62f

Browse files
authored
Merge pull request #147 from pver/mstests_traits
Added mstest checks for trait discovery
2 parents 4f6416f + abce1e0 commit b3ee62f

File tree

4 files changed

+56
-1
lines changed

4 files changed

+56
-1
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
using Microsoft.VisualStudio.TestTools.UnitTesting;
2+
3+
namespace OpenCover.UI.TestDiscoverer.TestResources.MSTest
4+
{
5+
[TestClass]
6+
public class TestFixtureWithTraits
7+
{
8+
[TestMethod]
9+
[TestCategory("Category_TestMethod_TestFixtureWithTraits")]
10+
public void TestMethod_TestFixtureWithTraits()
11+
{
12+
13+
}
14+
}
15+
16+
[TestClass]
17+
public class TestFixtureInheritingTraitMethods : TestFixtureWithTraits
18+
{
19+
[TestMethod]
20+
[TestCategory("Category_TestMethod_TestFixtureInheritingTraitMethods_1")]
21+
[TestCategory("Category_TestMethod_TestFixtureInheritingTraitMethods_2")]
22+
public void TestMethod_TestFixtureInheritingTraitMethods()
23+
{
24+
25+
}
26+
}
27+
}

OpenCover.UI.TestDiscoverer.TestResources/OpenCover.UI.TestDiscoverer.TestResources.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
</ItemGroup>
6969
<ItemGroup>
7070
<Compile Include="MSTest\RegularTestFixture.cs" />
71+
<Compile Include="MSTest\TestFixtureWithTraits.cs" />
7172
<Compile Include="NUnit\TestFixtureWithNestedTestClasses.cs" />
7273
<Compile Include="NUnit\TestFixtureWithoutExplicitTextFixtureAttribute.cs" />
7374
<Compile Include="NUnit\RegularTestFixture.cs" />

OpenCover.UI.TestDiscoverer.Tests/DiscovererTestsBase.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ namespace OpenCover.UI.TestDiscoverer.Tests
1010
[TestFixture]
1111
abstract class DiscovererTestsBase
1212
{
13-
protected void AssertDiscoveredMethod(Type testFixtureInAssemblyToDiscoverTestsIn, string expectedNameOfFirstTestMethod, TestType frameworkType)
13+
protected void AssertDiscoveredMethod(Type testFixtureInAssemblyToDiscoverTestsIn,
14+
string expectedNameOfFirstTestMethod, TestType frameworkType, string[] expectedTraits = null)
1415
{
1516
// Arrange
1617
var discoverer = new Discoverer(new List<string> { testFixtureInAssemblyToDiscoverTestsIn.Assembly.Location });
@@ -30,6 +31,12 @@ protected void AssertDiscoveredMethod(Type testFixtureInAssemblyToDiscoverTestsI
3031
var discoveredMethod = discoveredTestClass.TestMethods
3132
.FirstOrDefault(x => x.Name == expectedNameOfFirstTestMethod);
3233
discoveredMethod.Should().NotBeNull();
34+
35+
if (expectedTraits != null)
36+
{
37+
discoveredMethod.Traits.ShouldAllBeEquivalentTo(expectedTraits);
38+
}
3339
}
40+
3441
}
3542
}

OpenCover.UI.TestDiscoverer.Tests/MSTest/MSTestDiscovererTests.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,25 @@ public void Discover_Finds_Sub_Test_Fixtures_And_Methods(Type testFixtureInAssem
2121
AssertDiscoveredMethod(testFixtureInAssemblyToDiscoverTestsIn, expectedNameOfFirstTestMethod, TestType.MSTest);
2222
}
2323

24+
[Ignore("MsTest Discoverer doesn't find base class methods yet"),
25+
TestCase(typeof(TestFixtureInheritingTraitMethods),
26+
"TestMethod_TestFixtureWithTraits",
27+
new[] { "Category_TestMethod_TestFixtureWithTraits" })]
28+
public void Discover_Finds_Inherited_Fixtures_And_Methods_With_Traits(Type testFixtureInAssemblyToDiscoverTestsIn, string expectedNameOfFirstTestMethod, string[] expectedTraits)
29+
{
30+
AssertDiscoveredMethod(testFixtureInAssemblyToDiscoverTestsIn, expectedNameOfFirstTestMethod, TestType.MSTest, expectedTraits);
31+
}
32+
33+
[TestCase(typeof(TestFixtureWithTraits),
34+
"TestMethod_TestFixtureWithTraits",
35+
new[] { "Category_TestMethod_TestFixtureWithTraits" })]
36+
[TestCase(typeof(TestFixtureInheritingTraitMethods),
37+
"TestMethod_TestFixtureInheritingTraitMethods",
38+
new[] { "Category_TestMethod_TestFixtureInheritingTraitMethods_1",
39+
"Category_TestMethod_TestFixtureInheritingTraitMethods_2" })]
40+
public void Discover_Finds_Fixtures_And_Methods_With_Traits(Type testFixtureInAssemblyToDiscoverTestsIn, string expectedNameOfFirstTestMethod, string[] expectedTraits)
41+
{
42+
AssertDiscoveredMethod(testFixtureInAssemblyToDiscoverTestsIn, expectedNameOfFirstTestMethod, TestType.MSTest, expectedTraits);
43+
}
2444
}
2545
}

0 commit comments

Comments
 (0)