Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace OpenCover.UI.TestDiscoverer.TestResources.MSTest
{
[TestClass]
public class TestFixtureWithTraits
{
[TestMethod]
[TestCategory("Category_TestMethod_TestFixtureWithTraits")]
public void TestMethod_TestFixtureWithTraits()
{

}
}

[TestClass]
public class TestFixtureInheritingTraitMethods : TestFixtureWithTraits
{
[TestMethod]
[TestCategory("Category_TestMethod_TestFixtureInheritingTraitMethods_1")]
[TestCategory("Category_TestMethod_TestFixtureInheritingTraitMethods_2")]
public void TestMethod_TestFixtureInheritingTraitMethods()
{

}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@
</ItemGroup>
<ItemGroup>
<Compile Include="MSTest\RegularTestFixture.cs" />
<Compile Include="MSTest\TestFixtureWithTraits.cs" />
<Compile Include="NUnit\TestFixtureWithNestedTestClasses.cs" />
<Compile Include="NUnit\TestFixtureWithoutExplicitTextFixtureAttribute.cs" />
<Compile Include="NUnit\RegularTestFixture.cs" />
Expand Down
9 changes: 8 additions & 1 deletion OpenCover.UI.TestDiscoverer.Tests/DiscovererTestsBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ namespace OpenCover.UI.TestDiscoverer.Tests
[TestFixture]
abstract class DiscovererTestsBase
{
protected void AssertDiscoveredMethod(Type testFixtureInAssemblyToDiscoverTestsIn, string expectedNameOfFirstTestMethod, TestType frameworkType)
protected void AssertDiscoveredMethod(Type testFixtureInAssemblyToDiscoverTestsIn,
string expectedNameOfFirstTestMethod, TestType frameworkType, string[] expectedTraits = null)
{
// Arrange
var discoverer = new Discoverer(new List<string> { testFixtureInAssemblyToDiscoverTestsIn.Assembly.Location });
Expand All @@ -30,6 +31,12 @@ protected void AssertDiscoveredMethod(Type testFixtureInAssemblyToDiscoverTestsI
var discoveredMethod = discoveredTestClass.TestMethods
.FirstOrDefault(x => x.Name == expectedNameOfFirstTestMethod);
discoveredMethod.Should().NotBeNull();

if (expectedTraits != null)
{
discoveredMethod.Traits.ShouldAllBeEquivalentTo(expectedTraits);
}
}

}
}
20 changes: 20 additions & 0 deletions OpenCover.UI.TestDiscoverer.Tests/MSTest/MSTestDiscovererTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,25 @@ public void Discover_Finds_Sub_Test_Fixtures_And_Methods(Type testFixtureInAssem
AssertDiscoveredMethod(testFixtureInAssemblyToDiscoverTestsIn, expectedNameOfFirstTestMethod, TestType.MSTest);
}

[Ignore("MsTest Discoverer doesn't find base class methods yet"),
TestCase(typeof(TestFixtureInheritingTraitMethods),
"TestMethod_TestFixtureWithTraits",
new[] { "Category_TestMethod_TestFixtureWithTraits" })]
public void Discover_Finds_Inherited_Fixtures_And_Methods_With_Traits(Type testFixtureInAssemblyToDiscoverTestsIn, string expectedNameOfFirstTestMethod, string[] expectedTraits)
{
AssertDiscoveredMethod(testFixtureInAssemblyToDiscoverTestsIn, expectedNameOfFirstTestMethod, TestType.MSTest, expectedTraits);
}

[TestCase(typeof(TestFixtureWithTraits),
"TestMethod_TestFixtureWithTraits",
new[] { "Category_TestMethod_TestFixtureWithTraits" })]
[TestCase(typeof(TestFixtureInheritingTraitMethods),
"TestMethod_TestFixtureInheritingTraitMethods",
new[] { "Category_TestMethod_TestFixtureInheritingTraitMethods_1",
"Category_TestMethod_TestFixtureInheritingTraitMethods_2" })]
public void Discover_Finds_Fixtures_And_Methods_With_Traits(Type testFixtureInAssemblyToDiscoverTestsIn, string expectedNameOfFirstTestMethod, string[] expectedTraits)
{
AssertDiscoveredMethod(testFixtureInAssemblyToDiscoverTestsIn, expectedNameOfFirstTestMethod, TestType.MSTest, expectedTraits);
}
}
}