Browse Source

Displaying mspec test specifications which are not implemented or marked with Ignore attribute as ignored.

pull/23/head
Tomasz Tretkowski 14 years ago
parent
commit
2ae8712a97
  1. 21
      src/AddIns/Analysis/MachineSpecifications/MachineSpecifications.Tests/Data/MSpecUnitTestMonitorTestsSampleData.xml
  2. 7
      src/AddIns/Analysis/MachineSpecifications/MachineSpecifications.Tests/MachineSpecifications.Tests.csproj
  3. 52
      src/AddIns/Analysis/MachineSpecifications/MachineSpecifications.Tests/Src/MSpecUnitTestMonitorTests.cs
  4. 3
      src/AddIns/Analysis/MachineSpecifications/MachineSpecifications.sln
  5. 8
      src/AddIns/Analysis/MachineSpecifications/MachineSpecifications/src/MSpecUnitTestMonitor.cs

21
src/AddIns/Analysis/MachineSpecifications/MachineSpecifications.Tests/Data/MSpecUnitTestMonitorTestsSampleData.xml

@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<MSpec>
<run time="115" />
<assembly name="MSpecTest1" location="C:\Users\trecio\Documents\SharpDevelop Projects\MSpecTest\MSpecTest1\bin\Debug\MSpecTest1.dll" time="52">
<concern name="">
<context name="TestClass" type-name="Namespace.TestClass">
<specification name="PassedTest" field-name="Passed_Test" status="passed" />
<specification name="FailedTest" field-name="Failed_Test" status="failed">
<error>
<message>
<![CDATA[Test failure description.]]>
</message>
<stack-trace><![CDATA[Stack trace]]></stack-trace>
</error>
</specification>
<specification name="NotImplementedTest" field-name="Not_Implemented_Test" status="not-implemented" />
<specification name="IgnoredTest" field-name="Ignored_Test" status="ignored" />
</context>
</concern>
</assembly>
</MSpec>

7
src/AddIns/Analysis/MachineSpecifications/MachineSpecifications.Tests/MachineSpecifications.Tests.csproj

@ -60,8 +60,13 @@ @@ -60,8 +60,13 @@
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Src\ClassFilterBuilder.cs" />
<Compile Include="Src\MSpecTestFrameworkTests.cs" />
<Compile Include="Src\MSpecUnitTestMonitorTests.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="Data\MSpecUnitTestMonitorTestsSampleData.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup />
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>

52
src/AddIns/Analysis/MachineSpecifications/MachineSpecifications.Tests/Src/MSpecUnitTestMonitorTests.cs

@ -0,0 +1,52 @@ @@ -0,0 +1,52 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using Machine.Specifications;
using developwithpassion.specifications.rhinomocks;
using ICSharpCode.UnitTesting;
namespace ICSharpCode.MachineSpecifications.Tests.Src
{
public class When_getting_test_results_from_external_runner : Observes<MSpecUnitTestMonitor>
{
private Because of = () =>
{
sut.Start();
sut.TestFinished += (source, e) => FinishedTests.Add(e.Result);;
sut.FileName = FILE_NAME;
sut.Read();
sut.Stop();
};
private It should_create_test_result_for_passed_test_with_status_set_to_success = () =>
AssertHasResultType("Namespace.TestClass.Passed_Test", TestResultType.Success);
private It should_create_result_for_failed_test_with_status_set_to_failure = () =>
AssertHasResultType("Namespace.TestClass.Failed_Test", TestResultType.Failure);
private It should_have_stack_trace_for_failed_test = () =>
FinishedTests.Where(t => t.ResultType == TestResultType.Failure)
.Select(t => t.StackTrace).ShouldContainOnly("Stack trace");
private It should_have_message_for_failed_test = () =>
FinishedTests.Where(t => t.ResultType == TestResultType.Failure)
.Select(t => t.Message).ShouldContainOnly("Test failure description.");
private It should_create_result_for_not_implemented_test_with_status_set_to_ignored = () =>
AssertHasResultType("Namespace.TestClass.Not_Implemented_Test", TestResultType.Ignored);
private It should_create_result_for_ignored_test_with_status_set_to_ignored = () =>
AssertHasResultType("Namespace.TestClass.Ignored_Test", TestResultType.Ignored);
private static readonly string FILE_NAME = @"Data\\MSpecUnitTestMonitorTestsSampleData.xml";
private static readonly IList<TestResult> FinishedTests = new List<TestResult>();
private static void AssertHasResultType(string testName, TestResultType result)
{
FinishedTests.ShouldContain(x => x.Name == testName);
FinishedTests.Single(x => x.Name == testName).ResultType.ShouldEqual(result);
}
}
}

3
src/AddIns/Analysis/MachineSpecifications/MachineSpecifications.sln

@ -1,6 +1,7 @@ @@ -1,6 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
# SharpDevelop 4.2.0.8235-alpha
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MachineSpecifications", "MachineSpecifications\MachineSpecifications.csproj", "{D1DA3B8F-7313-4BDA-8880-461C5F007751}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MachineSpecifications.Tests", "MachineSpecifications.Tests\MachineSpecifications.Tests.csproj", "{172AE35D-2051-4977-AC13-0BF1B76374D5}"
@ -67,6 +68,8 @@ Global @@ -67,6 +68,8 @@ Global
{1F261725-6318-4434-A1B1-6C70CE4CD324}.Release|Any CPU.Build.0 = Release|Any CPU
{1F261725-6318-4434-A1B1-6C70CE4CD324}.Release|x86.ActiveCfg = Release|Any CPU
{1F261725-6318-4434-A1B1-6C70CE4CD324}.Release|x86.Build.0 = Release|Any CPU
{D1DA3B8F-7313-4BDA-8880-461C5F007751}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D1DA3B8F-7313-4BDA-8880-461C5F007751}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

8
src/AddIns/Analysis/MachineSpecifications/MachineSpecifications/src/MSpecUnitTestMonitor.cs

@ -33,8 +33,6 @@ namespace ICSharpCode.MachineSpecifications @@ -33,8 +33,6 @@ namespace ICSharpCode.MachineSpecifications
public void Start()
{
var filter = FileName;
fileSystemWatcher = new FileSystemWatcher(Path.GetDirectoryName(FileName), Path.GetFileName(FileName));
reportedResults = new HashSet<string>();
if (File.Exists(FileName))
@ -94,6 +92,10 @@ namespace ICSharpCode.MachineSpecifications @@ -94,6 +92,10 @@ namespace ICSharpCode.MachineSpecifications
case "passed":
result.ResultType = TestResultType.Success;
break;
case "not-implemented":
case "ignored":
result.ResultType = TestResultType.Ignored;
break;
}
var errorNode = node.SelectSingleNode("error");
if (errorNode != null)
@ -117,7 +119,7 @@ namespace ICSharpCode.MachineSpecifications @@ -117,7 +119,7 @@ namespace ICSharpCode.MachineSpecifications
}
}
public long InitialFilePosition { get; set; }
public long InitialFilePosition { get; set; }
public void Dispose()
{

Loading…
Cancel
Save