Browse Source

Fixed more unit test cases.

pull/27/head
Lex Li 14 years ago
parent
commit
a0df22e2fc
  1. 15
      src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageResults.cs
  2. 2
      src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageTestRunner.cs
  3. 18
      src/AddIns/Analysis/CodeCoverage/Project/Src/OpenCoverSettings.cs
  4. 6
      src/AddIns/Analysis/CodeCoverage/Project/Src/OpenCoverSettingsFactory.cs
  5. 20
      src/AddIns/Analysis/CodeCoverage/Test/CodeCoverage.Tests.csproj
  6. 26
      src/AddIns/Analysis/CodeCoverage/Test/Coverage/OpenCoverSettingsFactoryTests.cs
  7. 4
      src/AddIns/Analysis/CodeCoverage/Test/Coverage/OpenCoverSettingsMissingRulePrefixTestFixture.cs
  8. 8
      src/AddIns/Analysis/CodeCoverage/Test/Coverage/OpenCoverSettingsTestFixture.cs
  9. 39
      src/AddIns/Analysis/CodeCoverage/Test/Highlighting/AddCodeCoverageMarkersTestFixture.cs
  10. 14
      src/AddIns/Analysis/CodeCoverage/Test/Testing/CodeCoverageTestRunnerTests.cs
  11. 48
      src/AddIns/Analysis/CodeCoverage/Test/Testing/OpenCoverApplicationTests.cs
  12. 38
      src/AddIns/Analysis/CodeCoverage/Test/Testing/RunTestWithCodeCoverageCommandTests.cs

15
src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageResults.cs

@ -76,7 +76,14 @@ namespace ICSharpCode.CodeCoverage
/// </summary> /// </summary>
CodeCoverageModule AddModule(XElement reader, string className) CodeCoverageModule AddModule(XElement reader, string className)
{ {
CodeCoverageModule module = new CodeCoverageModule(className); string assemblyName = GetAssemblyName(reader);
foreach (CodeCoverageModule existingModule in modules) {
if (existingModule.Name == assemblyName) {
return existingModule;
}
}
CodeCoverageModule module = new CodeCoverageModule(assemblyName);
modules.Add(module); modules.Add(module);
var methods = reader var methods = reader
@ -91,6 +98,12 @@ namespace ICSharpCode.CodeCoverage
return module; return module;
} }
string GetAssemblyName(XElement reader)
{
string id = reader.Attribute("hash").Value;
return GetAssembly(id);
}
CodeCoverageMethod AddMethod(CodeCoverageModule module, string className, XElement reader) CodeCoverageMethod AddMethod(CodeCoverageModule module, string className, XElement reader)
{ {
CodeCoverageMethod method = new CodeCoverageMethod(className, reader); CodeCoverageMethod method = new CodeCoverageMethod(className, reader);

2
src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageTestRunner.cs

@ -66,7 +66,7 @@ namespace ICSharpCode.CodeCoverage
NUnitConsoleApplication nunitConsoleApp = new NUnitConsoleApplication(selectedTests, options); NUnitConsoleApplication nunitConsoleApp = new NUnitConsoleApplication(selectedTests, options);
nunitConsoleApp.Results = base.TestResultsMonitor.FileName; nunitConsoleApp.Results = base.TestResultsMonitor.FileName;
OpenCoverSettings settings = settingsFactory.CreatePartCoverSettings(selectedTests.Project); OpenCoverSettings settings = settingsFactory.CreateOpenCoverSettings(selectedTests.Project);
partCoverApplication = new OpenCoverApplication(nunitConsoleApp, settings); partCoverApplication = new OpenCoverApplication(nunitConsoleApp, settings);
} }

18
src/AddIns/Analysis/CodeCoverage/Project/Src/OpenCoverSettings.cs

@ -12,14 +12,14 @@ using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.CodeCoverage namespace ICSharpCode.CodeCoverage
{ {
/// <summary> /// <summary>
/// File that stores PartCover settings. This file has the same format as /// File that stores OpenCover settings. This file has the same format as
/// PartCover requires, but is actually just used by the Code Coverage addin /// OpenCover requires, but is actually just used by the Code Coverage addin
/// as a place to store the include and exclude regular expressions that the /// as a place to store the include and exclude regular expressions that the
/// user may set up on a per project basis. /// user may set up on a per project basis.
/// </summary> /// </summary>
public class OpenCoverSettings public class OpenCoverSettings
{ {
static readonly string RootElementName = "PartCoverSettings"; static readonly string RootElementName = "OpenCoverSettings";
static readonly string RuleElementName = "Rule"; static readonly string RuleElementName = "Rule";
StringCollection include = new StringCollection(); StringCollection include = new StringCollection();
StringCollection exclude = new StringCollection(); StringCollection exclude = new StringCollection();
@ -44,11 +44,11 @@ namespace ICSharpCode.CodeCoverage
} }
/// <summary> /// <summary>
/// Gets the NCover settings filename for the specified project. /// Gets the OpenCover settings filename for the specified project.
/// </summary> /// </summary>
public static string GetFileName(IProject project) public static string GetFileName(IProject project)
{ {
return Path.ChangeExtension(project.FileName, "PartCover.Settings"); return Path.ChangeExtension(project.FileName, "OpenCover.Settings");
} }
/// <summary> /// <summary>
@ -66,7 +66,7 @@ namespace ICSharpCode.CodeCoverage
} }
/// <summary> /// <summary>
/// Writes the PartCover settings to the specified text writer. /// Writes the OpenCover settings to the specified text writer.
/// </summary> /// </summary>
public void Save(TextWriter writer) public void Save(TextWriter writer)
{ {
@ -74,7 +74,7 @@ namespace ICSharpCode.CodeCoverage
} }
/// <summary> /// <summary>
/// Saves the PartCover settings to the specified file. /// Saves the OpenCover settings to the specified file.
/// </summary> /// </summary>
public void Save(string fileName) public void Save(string fileName)
{ {
@ -82,7 +82,7 @@ namespace ICSharpCode.CodeCoverage
} }
/// <summary> /// <summary>
/// Writes the PartCover settings to the specified XmlTextWriter. /// Writes the OpenCover settings to the specified XmlTextWriter.
/// </summary> /// </summary>
public void Save(XmlTextWriter writer) public void Save(XmlTextWriter writer)
{ {
@ -98,7 +98,7 @@ namespace ICSharpCode.CodeCoverage
/// <summary> /// <summary>
/// Reads the include and exclude regular expressions from the /// Reads the include and exclude regular expressions from the
/// PartCover settings xml. /// OpenCover settings xml.
/// </summary> /// </summary>
void ReadSettings(XmlReader reader) void ReadSettings(XmlReader reader)
{ {

6
src/AddIns/Analysis/CodeCoverage/Project/Src/OpenCoverSettingsFactory.cs

@ -21,16 +21,16 @@ namespace ICSharpCode.CodeCoverage
{ {
} }
public OpenCoverSettings CreatePartCoverSettings(IProject project) public OpenCoverSettings CreateOpenCoverSettings(IProject project)
{ {
string fileName = OpenCoverSettings.GetFileName(project); string fileName = OpenCoverSettings.GetFileName(project);
if (fileSystem.FileExists(fileName)) { if (fileSystem.FileExists(fileName)) {
return CreatePartCoverSettingsFromFile(fileName); return CreateOpenCoverSettingsFromFile(fileName);
} }
return new OpenCoverSettings(); return new OpenCoverSettings();
} }
OpenCoverSettings CreatePartCoverSettingsFromFile(string fileName) OpenCoverSettings CreateOpenCoverSettingsFromFile(string fileName)
{ {
TextReader reader = fileSystem.CreateTextReader(fileName); TextReader reader = fileSystem.CreateTextReader(fileName);
return new OpenCoverSettings(reader); return new OpenCoverSettings(reader);

20
src/AddIns/Analysis/CodeCoverage/Test/CodeCoverage.Tests.csproj

@ -72,9 +72,9 @@
<Compile Include="Coverage\InvalidSequencePointDataTestFixture.cs" /> <Compile Include="Coverage\InvalidSequencePointDataTestFixture.cs" />
<Compile Include="Coverage\MethodHasNoNamespaceTestFixture.cs" /> <Compile Include="Coverage\MethodHasNoNamespaceTestFixture.cs" />
<Compile Include="Coverage\ModuleVisitedSequencePointsTestFixture.cs" /> <Compile Include="Coverage\ModuleVisitedSequencePointsTestFixture.cs" />
<Compile Include="Coverage\PartCoverSettingsFactoryTests.cs" /> <Compile Include="Coverage\OpenCoverSettingsFactoryTests.cs" />
<Compile Include="Coverage\PartCoverSettingsMissingRulePrefixTestFixture.cs" /> <Compile Include="Coverage\OpenCoverSettingsMissingRulePrefixTestFixture.cs" />
<Compile Include="Coverage\PartCoverSettingsTestFixture.cs" /> <Compile Include="Coverage\OpenCoverSettingsTestFixture.cs" />
<Compile Include="Coverage\RemoveTaskMarkerTests.cs" /> <Compile Include="Coverage\RemoveTaskMarkerTests.cs" />
<Compile Include="Coverage\SequencePointTests.cs" /> <Compile Include="Coverage\SequencePointTests.cs" />
<Compile Include="Coverage\SimilarRootNamespaceTestFixture.cs" /> <Compile Include="Coverage\SimilarRootNamespaceTestFixture.cs" />
@ -91,7 +91,7 @@
<Compile Include="Highlighting\CodeCoverageMarkersInvalidStartLineTestFixture.cs" /> <Compile Include="Highlighting\CodeCoverageMarkersInvalidStartLineTestFixture.cs" />
<Compile Include="Highlighting\RemoveCodeCoverageMarkersTestFixture.cs" /> <Compile Include="Highlighting\RemoveCodeCoverageMarkersTestFixture.cs" />
<Compile Include="Testing\CodeCoverageTestRunnerTests.cs" /> <Compile Include="Testing\CodeCoverageTestRunnerTests.cs" />
<Compile Include="Testing\PartCoverApplicationTests.cs" /> <Compile Include="Testing\OpenCoverApplicationTests.cs" />
<Compile Include="Testing\RunTestWithCodeCoverageCommandTests.cs" /> <Compile Include="Testing\RunTestWithCodeCoverageCommandTests.cs" />
<Compile Include="Utils\DerivedCodeCoverageTestRunner.cs" /> <Compile Include="Utils\DerivedCodeCoverageTestRunner.cs" />
<Compile Include="Utils\DerivedRunTestWithCodeCoverageCommand.cs" /> <Compile Include="Utils\DerivedRunTestWithCodeCoverageCommand.cs" />
@ -99,7 +99,9 @@
<Compile Include="Gui\CodeCoverageTreeViewTestFixture.cs" /> <Compile Include="Gui\CodeCoverageTreeViewTestFixture.cs" />
<Compile Include="Gui\ListViewSortingTestFixture.cs" /> <Compile Include="Gui\ListViewSortingTestFixture.cs" />
<Compile Include="Gui\TreeViewAfterSelectTestFixture.cs" /> <Compile Include="Gui\TreeViewAfterSelectTestFixture.cs" />
<Compile Include="Utils\DerivedCodeCoverageTreeView.cs" /> <Compile Include="Utils\DerivedCodeCoverageTreeView.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Utils\MockCodeCoverageTestRunnerFactory.cs" /> <Compile Include="Utils\MockCodeCoverageTestRunnerFactory.cs" />
<Compile Include="Utils\MockFileSystem.cs" /> <Compile Include="Utils\MockFileSystem.cs" />
</ItemGroup> </ItemGroup>
@ -138,13 +140,7 @@
<Name>ICSharpCode.SharpDevelop.Dom</Name> <Name>ICSharpCode.SharpDevelop.Dom</Name>
</ProjectReference> </ProjectReference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup />
<Folder Include="Coverage" />
<Folder Include="Highlighting" />
<Folder Include="Testing" />
<Folder Include="Utils" />
<Folder Include="Gui" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="..\..\..\..\..\AddIns\Analysis\UnitTesting\UnitTesting.dll"> <None Include="..\..\..\..\..\AddIns\Analysis\UnitTesting\UnitTesting.dll">
<Link>UnitTesting.dll</Link> <Link>UnitTesting.dll</Link>

26
src/AddIns/Analysis/CodeCoverage/Test/Coverage/PartCoverSettingsFactoryTests.cs → src/AddIns/Analysis/CodeCoverage/Test/Coverage/OpenCoverSettingsFactoryTests.cs

@ -15,7 +15,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage
public class OpenCoverSettingsFactoryTests public class OpenCoverSettingsFactoryTests
{ {
OpenCoverSettingsFactory factory; OpenCoverSettingsFactory factory;
OpenCoverSettings partCoverSettings; OpenCoverSettings openCoverSettings;
MockCSharpProject project; MockCSharpProject project;
MockFileSystem fileSystem; MockFileSystem fileSystem;
@ -28,33 +28,33 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage
} }
[Test] [Test]
public void CreatePartCoverSettingsWhenFileDoesNotExistCreatesSettingsWithNoPartCoverIncludes() public void CreateOpenCoverSettingsWhenFileDoesNotExistCreatesSettingsWithNoPartCoverIncludes()
{ {
fileSystem.FileExistsReturnValue = false; fileSystem.FileExistsReturnValue = false;
CreatePartCoverSettingsFromFactory(); CreateOpenCoverSettingsFromFactory();
Assert.AreEqual(0, partCoverSettings.Include.Count); Assert.AreEqual(0, openCoverSettings.Include.Count);
} }
void CreatePartCoverSettingsFromFactory() void CreateOpenCoverSettingsFromFactory()
{ {
partCoverSettings = factory.CreatePartCoverSettings(project); openCoverSettings = factory.CreateOpenCoverSettings(project);
} }
[Test] [Test]
public void CreatePartCoverSettingsWhenFileExistsCreatesSettingsFromFile() public void CreateOpenCoverSettingsWhenFileExistsCreatesSettingsFromFile()
{ {
string partCoverSettingsXml = string openCoverSettingsXml =
"<PartCoverSettings>\r\n" + "<OpenCoverSettings>\r\n" +
" <Rule>+test</Rule>\r\n" + " <Rule>+test</Rule>\r\n" +
"</PartCoverSettings>"; "</OpenCoverSettings>";
StringReader reader = new StringReader(partCoverSettingsXml); StringReader reader = new StringReader(openCoverSettingsXml);
fileSystem.CreateTextReaderReturnValue = reader; fileSystem.CreateTextReaderReturnValue = reader;
fileSystem.FileExistsReturnValue = true; fileSystem.FileExistsReturnValue = true;
CreatePartCoverSettingsFromFactory(); CreateOpenCoverSettingsFromFactory();
Assert.AreEqual("test", partCoverSettings.Include[0]); Assert.AreEqual("test", openCoverSettings.Include[0]);
} }
} }
} }

4
src/AddIns/Analysis/CodeCoverage/Test/Coverage/PartCoverSettingsMissingRulePrefixTestFixture.cs → src/AddIns/Analysis/CodeCoverage/Test/Coverage/OpenCoverSettingsMissingRulePrefixTestFixture.cs

@ -20,10 +20,10 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage
[TestFixtureSetUp] [TestFixtureSetUp]
public void SetUpFixture() public void SetUpFixture()
{ {
string xml = "<PartCoverSettings>\r\n" + string xml = "<OpenCoverSettings>\r\n" +
" <Rule/>\r\n" + " <Rule/>\r\n" +
" <Rule></Rule>\r\n" + " <Rule></Rule>\r\n" +
"</PartCoverSettings>"; "</OpenCoverSettings>";
settings = new OpenCoverSettings(new StringReader(xml)); settings = new OpenCoverSettings(new StringReader(xml));
} }

8
src/AddIns/Analysis/CodeCoverage/Test/Coverage/PartCoverSettingsTestFixture.cs → src/AddIns/Analysis/CodeCoverage/Test/Coverage/OpenCoverSettingsTestFixture.cs

@ -57,7 +57,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage
} }
[Test] [Test]
public void PartCoverSettingsFileName() public void OpenCoverSettingsFileName()
{ {
MSBuildBasedProject project = new MSBuildBasedProject( MSBuildBasedProject project = new MSBuildBasedProject(
new ProjectCreateInformation { new ProjectCreateInformation {
@ -66,19 +66,19 @@ namespace ICSharpCode.CodeCoverage.Tests.Coverage
ProjectName = "test" ProjectName = "test"
}); });
Assert.AreEqual(@"C:\temp\test.PartCover.Settings", OpenCoverSettings.GetFileName(project)); Assert.AreEqual(@"C:\temp\test.OpenCover.Settings", OpenCoverSettings.GetFileName(project));
} }
[Test] [Test]
public void FourRuleElements() public void FourRuleElements()
{ {
Assert.AreEqual(4, doc.SelectNodes("/PartCoverSettings/Rule").Count); Assert.AreEqual(4, doc.SelectNodes("/OpenCoverSettings/Rule").Count);
} }
[Test] [Test]
public void FirstRuleElement() public void FirstRuleElement()
{ {
Assert.IsNotNull(doc.SelectSingleNode("/PartCoverSettings/Rule[text()='+[a]*']")); Assert.IsNotNull(doc.SelectSingleNode("/OpenCoverSettings/Rule[text()='+[a]*']"));
} }
} }
} }

39
src/AddIns/Analysis/CodeCoverage/Test/Highlighting/AddCodeCoverageMarkersTestFixture.cs

@ -35,17 +35,34 @@ namespace ICSharpCode.CodeCoverage.Tests.Highlighting
document.Text = code; document.Text = code;
markerStrategy = document.GetService(typeof(ITextMarkerService)) as ITextMarkerService; markerStrategy = document.GetService(typeof(ITextMarkerService)) as ITextMarkerService;
string xml = "<PartCoverReport>\r\n" + string xml = "<CoverageSession xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\r\n" +
"<File id=\"1\" url=\"c:\\Projects\\Foo\\FooTestFixture.cs\" />\r\n" + "\t<Modules>\r\n" +
"<Assembly id=\"1\" name=\"Foo.Tests\" module=\"C:\\Projects\\Test\\Foo.Tests\\bin\\Foo.Tests.DLL\" domain=\"test-domain-Foo.Tests.dll\" domainIdx=\"1\" />\r\n" + "\t\t<Module>\r\n" +
"\t<Type asmref=\"1\" name=\"Foo.Tests.FooTestFixture\" flags=\"1232592\">\r\n" + "\t\t\t<FullName>C:\\Projects\\Test\\Foo.Tests\\bin\\Foo.Tests.DLL</FullName>\r\n" +
"\t\t<Method name=\"SimpleTest\">\r\n" + "\t\t\t<ModuleName>Foo.Tests</ModuleName>\r\n" +
"\t\t\t<pt visit=\"1\" sl=\"1\" fid=\"1\" sc=\"3\" el=\"1\" ec=\"4\" document=\"c:\\Projects\\Foo\\Foo1TestFixture.cs\" />\r\n" + "\t\t\t<Files>\r\n" +
"\t\t\t<pt visit=\"1\" sl=\"2\" fid=\"1\" sc=\"4\" el=\"2\" ec=\"18\" document=\"c:\\Projects\\Foo\\Foo1TestFixture.cs\" />\r\n" + "\t\t\t\t<File uid=\"1\" fullPath=\"c:\\Projects\\Foo\\FooTestFixture.cs\" />\r\n" +
"\t\t\t<pt visit=\"0\" sl=\"3\" fid=\"1\" sc=\"3\" el=\"3\" ec=\"4\" document=\"c:\\Projects\\Foo\\Foo1TestFixture.cs\" />\r\n" + "\t\t\t</Files>\r\n" +
"\t\t</Method>\r\n" + "\t\t\t<Classes>\r\n" +
"\t</Type>\r\n" + "\t\t\t\t<Class>\r\n" +
"</PartCoverReport>"; "\t\t\t\t\t<FullName>Foo.Tests.FooTestFixture</FullName>\r\n" +
"\t\t\t\t\t<Methods>\r\n" +
"\t\t\t\t\t\t<Method visited=\"true\" cyclomaticComplexity=\"1\" sequenceCoverage=\"100\" branchCoverage=\"100\" isConstructor=\"false\" isStatic=\"false\" isGetter=\"false\" isSetter=\"false\">\r\n" +
"\t\t\t\t\t\t<MetadataToken>100663297</MetadataToken>\r\n" +
"\t\t\t\t\t\t<Name>System.Void Foo.Tests.FooTestFixture::SimpleTest()</Name>\r\n" +
"\t\t\t\t\t\t<FileRef uid=\"1\" />\r\n" +
"\t\t\t\t\t\t<SequencePoints>\r\n" +
"\t\t\t\t\t\t\t<SequencePoint vc=\"1\" sl=\"1\" sc=\"3\" el=\"1\" ec=\"4\" />\r\n" +
"\t\t\t\t\t\t\t<SequencePoint vc=\"1\" sl=\"2\" sc=\"4\" el=\"2\" ec=\"18\" />\r\n" +
"\t\t\t\t\t\t\t<SequencePoint vc=\"0\" sl=\"3\" sc=\"3\" el=\"3\" ec=\"4\" />\r\n" +
"\t\t\t\t\t\t\t</SequencePoints>\r\n" +
"\t\t\t\t\t\t</Method>\r\n" +
"\t\t\t\t\t</Methods>\r\n" +
"\t\t\t\t</Class>\r\n" +
"\t\t\t</Classes>\r\n" +
"\t\t</Module>\r\n" +
"\t</Modules>\r\n" +
"</CoverageSession>";
CodeCoverageResults results = new CodeCoverageResults(new StringReader(xml)); CodeCoverageResults results = new CodeCoverageResults(new StringReader(xml));
CodeCoverageMethod method = results.Modules[0].Methods[0]; CodeCoverageMethod method = results.Modules[0].Methods[0];
CodeCoverageHighlighter highlighter = new CodeCoverageHighlighter(); CodeCoverageHighlighter highlighter = new CodeCoverageHighlighter();

14
src/AddIns/Analysis/CodeCoverage/Test/Testing/CodeCoverageTestRunnerTests.cs

@ -118,7 +118,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing
string expectedCommandLine = string expectedCommandLine =
"-register:user -target:\"d:\\sharpdevelop\\bin\\Tools\\NUnit\\nunit-console-x86.exe\" " + "-register:user -target:\"d:\\sharpdevelop\\bin\\Tools\\NUnit\\nunit-console-x86.exe\" " +
"-targetdir:\"c:\\projects\\MyTests\\bin\\Debug\" " + "-targetdir:\"c:\\projects\\MyTests\\bin\\Debug\" " +
"-targetargs \"\\\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\\\" /noxml /results=\\\"d:\\temp\\results.txt\\\"\" " + "-targetargs:\"\\\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\\\" /noxml /results=\\\"d:\\temp\\results.txt\\\"\" " +
"-output:\"c:\\projects\\MyTests\\OpenCover\\coverage.xml\" " + "-output:\"c:\\projects\\MyTests\\OpenCover\\coverage.xml\" " +
"-filter:\"+[MyTests]* \""; "-filter:\"+[MyTests]* \"";
@ -215,12 +215,12 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing
string GetCodeCoverageCommandLine() string GetCodeCoverageCommandLine()
{ {
return return
"\"d:\\sharpdevelop\\bin\\Tools\\PartCover\\PartCover.exe\" " + "\"d:\\sharpdevelop\\bin\\Tools\\OpenCover\\OpenCover.Console.exe\" -register:user " +
"--target \"d:\\sharpdevelop\\bin\\Tools\\NUnit\\nunit-console-x86.exe\" " + "-target:\"d:\\sharpdevelop\\bin\\Tools\\NUnit\\nunit-console-x86.exe\" " +
"--target-work-dir \"c:\\projects\\MyTests\\bin\\Debug\" " + "-targetdir:\"c:\\projects\\MyTests\\bin\\Debug\" " +
"--target-args \"\\\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\\\" /noxml\" " + "-targetargs:\"\\\"c:\\projects\\MyTests\\bin\\Debug\\MyTests.dll\\\" /noxml\" " +
"--output \"c:\\projects\\MyTests\\PartCover\\coverage.xml\" " + "-output:\"c:\\projects\\MyTests\\OpenCover\\coverage.xml\" " +
"--include [*]*"; "-filter:\"+[*]* \"";
} }
[Test] [Test]

48
src/AddIns/Analysis/CodeCoverage/Test/Testing/PartCoverApplicationTests.cs → src/AddIns/Analysis/CodeCoverage/Test/Testing/OpenCoverApplicationTests.cs

@ -17,22 +17,22 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing
NUnitConsoleApplication nunitConsoleApp; NUnitConsoleApplication nunitConsoleApp;
SelectedTests selectedTests; SelectedTests selectedTests;
UnitTestingOptions options; UnitTestingOptions options;
OpenCoverApplication partCoverApp; OpenCoverApplication openCoverApp;
OpenCoverSettings partCoverSettings; OpenCoverSettings openCoverSettings;
[Test] [Test]
public void FileNameWhenPartCoverApplicationConstructedWithFileNameParameterMatchesFileNameParameter() public void FileNameWhenPartCoverApplicationConstructedWithFileNameParameterMatchesFileNameParameter()
{ {
string expectedFileName = @"d:\projects\PartCover.exe"; string expectedFileName = @"d:\projects\PartCover.exe";
CreatePartCoverApplication(expectedFileName); CreateOpenCoverApplication(expectedFileName);
Assert.AreEqual(expectedFileName, partCoverApp.FileName); Assert.AreEqual(expectedFileName, openCoverApp.FileName);
} }
void CreatePartCoverApplication(string fileName) void CreateOpenCoverApplication(string fileName)
{ {
CreateNUnitConsoleApplication(); CreateNUnitConsoleApplication();
partCoverSettings = new OpenCoverSettings(); openCoverSettings = new OpenCoverSettings();
partCoverApp = new OpenCoverApplication(fileName, nunitConsoleApp, partCoverSettings); openCoverApp = new OpenCoverApplication(fileName, nunitConsoleApp, openCoverSettings);
} }
void CreateNUnitConsoleApplication() void CreateNUnitConsoleApplication()
@ -50,13 +50,13 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing
FileUtility.ApplicationRootPath = @"d:\sharpdevelop"; FileUtility.ApplicationRootPath = @"d:\sharpdevelop";
CreatePartCoverApplicationWithoutFileName(); CreatePartCoverApplicationWithoutFileName();
string expectedPath = @"d:\sharpdevelop\bin\Tools\OpenCover\OpenCover.Console.exe"; string expectedPath = @"d:\sharpdevelop\bin\Tools\OpenCover\OpenCover.Console.exe";
Assert.AreEqual(expectedPath, partCoverApp.FileName); Assert.AreEqual(expectedPath, openCoverApp.FileName);
} }
void CreatePartCoverApplicationWithoutFileName() void CreatePartCoverApplicationWithoutFileName()
{ {
CreateNUnitConsoleApplication(); CreateNUnitConsoleApplication();
partCoverApp = new OpenCoverApplication(nunitConsoleApp, new OpenCoverSettings()); openCoverApp = new OpenCoverApplication(nunitConsoleApp, new OpenCoverSettings());
} }
[Test] [Test]
@ -65,27 +65,27 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing
FileUtility.ApplicationRootPath = @"d:\sharpdevelop\..\sharpdevelop"; FileUtility.ApplicationRootPath = @"d:\sharpdevelop\..\sharpdevelop";
CreatePartCoverApplicationWithoutFileName(); CreatePartCoverApplicationWithoutFileName();
string expectedPath = @"d:\sharpdevelop\bin\Tools\OpenCover\OpenCover.Console.exe"; string expectedPath = @"d:\sharpdevelop\bin\Tools\OpenCover\OpenCover.Console.exe";
Assert.AreEqual(expectedPath, partCoverApp.FileName); Assert.AreEqual(expectedPath, openCoverApp.FileName);
} }
[Test] [Test]
public void TargetIsNUnitConsoleApplicationFileName() public void TargetIsNUnitConsoleApplicationFileName()
{ {
CreatePartCoverApplication(); CreatePartCoverApplication();
Assert.AreEqual(nunitConsoleApp.FileName, partCoverApp.Target); Assert.AreEqual(nunitConsoleApp.FileName, openCoverApp.Target);
} }
void CreatePartCoverApplication() void CreatePartCoverApplication()
{ {
string fileName = @"d:\partcover\PartCover.exe"; string fileName = @"d:\partcover\PartCover.exe";
CreatePartCoverApplication(fileName); CreateOpenCoverApplication(fileName);
} }
[Test] [Test]
public void GetTargetArgumentsReturnsNUnitConsoleApplicationCommandLineArguments() public void GetTargetArgumentsReturnsNUnitConsoleApplicationCommandLineArguments()
{ {
CreatePartCoverApplication(); CreatePartCoverApplication();
Assert.AreEqual(nunitConsoleApp.GetArguments(), partCoverApp.GetTargetArguments()); Assert.AreEqual(nunitConsoleApp.GetArguments(), openCoverApp.GetTargetArguments());
} }
[Test] [Test]
@ -93,7 +93,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing
{ {
CreatePartCoverApplication(); CreatePartCoverApplication();
string expectedTargetWorkingDirectory = @"c:\projects\MyTests\bin\Debug"; string expectedTargetWorkingDirectory = @"c:\projects\MyTests\bin\Debug";
Assert.AreEqual(expectedTargetWorkingDirectory, partCoverApp.GetTargetWorkingDirectory()); Assert.AreEqual(expectedTargetWorkingDirectory, openCoverApp.GetTargetWorkingDirectory());
} }
[Test] [Test]
@ -103,22 +103,22 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing
string expectedOutputDirectory = string expectedOutputDirectory =
@"c:\projects\MyTests\OpenCover\coverage.xml"; @"c:\projects\MyTests\OpenCover\coverage.xml";
Assert.AreEqual(expectedOutputDirectory, partCoverApp.CodeCoverageResultsFileName); Assert.AreEqual(expectedOutputDirectory, openCoverApp.CodeCoverageResultsFileName);
} }
[Test] [Test]
public void SettingsReturnsPartCoverSettingsPassedToConstructor() public void SettingsReturnsPartCoverSettingsPassedToConstructor()
{ {
CreatePartCoverApplication(); CreatePartCoverApplication();
Assert.AreEqual(partCoverSettings, partCoverApp.Settings); Assert.AreEqual(openCoverSettings, openCoverApp.Settings);
} }
[Test] [Test]
public void GetProcessStartInfoReturnsStartInfoWhereFileNameIsPartCoverAppFileName() public void GetProcessStartInfoReturnsStartInfoWhereFileNameIsPartCoverAppFileName()
{ {
string partCoverAppFileName = @"d:\projects\partcover.exe"; string partCoverAppFileName = @"d:\projects\partcover.exe";
CreatePartCoverApplication(partCoverAppFileName); CreateOpenCoverApplication(partCoverAppFileName);
ProcessStartInfo processStartInfo = partCoverApp.GetProcessStartInfo(); ProcessStartInfo processStartInfo = openCoverApp.GetProcessStartInfo();
Assert.AreEqual(partCoverAppFileName, processStartInfo.FileName); Assert.AreEqual(partCoverAppFileName, processStartInfo.FileName);
} }
@ -128,7 +128,7 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing
{ {
FileUtility.ApplicationRootPath = @"d:\sharpdevelop"; FileUtility.ApplicationRootPath = @"d:\sharpdevelop";
CreatePartCoverApplication(); CreatePartCoverApplication();
ProcessStartInfo processStartInfo = partCoverApp.GetProcessStartInfo(); ProcessStartInfo processStartInfo = openCoverApp.GetProcessStartInfo();
string expectedCommandLine = string expectedCommandLine =
"-register:user -target:\"d:\\sharpdevelop\\bin\\Tools\\NUnit\\nunit-console-x86.exe\" " + "-register:user -target:\"d:\\sharpdevelop\\bin\\Tools\\NUnit\\nunit-console-x86.exe\" " +
@ -146,13 +146,13 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing
FileUtility.ApplicationRootPath = @"d:\sharpdevelop"; FileUtility.ApplicationRootPath = @"d:\sharpdevelop";
CreatePartCoverApplication(); CreatePartCoverApplication();
partCoverSettings.Include.Add("[MyTests]*"); openCoverSettings.Include.Add("[MyTests]*");
partCoverSettings.Include.Add("[MoreTests]*"); openCoverSettings.Include.Add("[MoreTests]*");
partCoverSettings.Exclude.Add("[NUnit.Framework]*"); openCoverSettings.Exclude.Add("[NUnit.Framework]*");
partCoverSettings.Exclude.Add("[MyProject]*"); openCoverSettings.Exclude.Add("[MyProject]*");
ProcessStartInfo processStartInfo = partCoverApp.GetProcessStartInfo(); ProcessStartInfo processStartInfo = openCoverApp.GetProcessStartInfo();
string expectedCommandLine = string expectedCommandLine =
"-register:user -target:\"d:\\sharpdevelop\\bin\\Tools\\NUnit\\nunit-console-x86.exe\" " + "-register:user -target:\"d:\\sharpdevelop\\bin\\Tools\\NUnit\\nunit-console-x86.exe\" " +

38
src/AddIns/Analysis/CodeCoverage/Test/Testing/RunTestWithCodeCoverageCommandTests.cs

@ -3,9 +3,6 @@
using System; using System;
using System.IO; using System.IO;
using System.Text;
using ICSharpCode.CodeCoverage;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.UnitTesting; using ICSharpCode.UnitTesting;
@ -189,15 +186,32 @@ namespace ICSharpCode.CodeCoverage.Tests.Testing
TextReader CreateCodeCoverageResultsTextReader() TextReader CreateCodeCoverageResultsTextReader()
{ {
string xml = string xml =
"<PartCoverReport>\r\n" + "<CoverageSession xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\r\n" +
" <File id='1' url='c:\\Projects\\MyTests\\MyTestFixture.cs'/>\r\n" + " <Modules>\r\n" +
" <Assembly id='1' name='MyTests' module='C:\\Projects\\MyTests\\bin\\MyTests.DLL' domain='test-domain.Tests.dll' domainIdx='1' />\r\n" + " <Module hash=\"44-54-B6-13-97-49-45-F8-6A-74-9E-49-0C-77-87-C6-9C-54-47-7A\">\r\n" +
" <Type name='MyTests.Tests.MyTestFixture' asmref='1'>\r\n" + " <FullName>C:\\Projects\\MyTests\\bin\\MyTests.DLL</FullName>\r\n" +
" <Method name='SimpleTest1'>\r\n" + " <ModuleName>MyTests</ModuleName>\r\n" +
" <pt visit='12' sl='20' sc='3' el='20' ec='4' fid='1' />\r\n" + " <Files>\r\n" +
" </Method>\r\n" + " <File uid=\"1\" fullPath=\"c:\\Projects\\MyTests\\MyTestFixture.cs\" />\r\n" +
" </Type>\r\n" + " </Files>\r\n" +
"</PartCoverReport>"; " <Classes>\r\n" +
" <Class>\r\n" +
" <FullName>MyTests.Tests.MyTestFixture</FullName>\r\n" +
" <Methods>\r\n" +
" <Method visited=\"true\" cyclomaticComplexity=\"1\" sequenceCoverage=\"100\" branchCoverage=\"100\" isConstructor=\"false\" isStatic=\"false\" isGetter=\"false\" isSetter=\"false\">\r\n" +
" <MetadataToken>100663297</MetadataToken>\r\n" +
" <Name>System.Void MyTests.Tests.MyTestFixture::SimpleTest1()</Name>\r\n" +
" <FileRef uid=\"1\" />\r\n" +
" <SequencePoints>\r\n" +
" <SequencePoint vc='12' sl='20' sc='3' el='20' ec='4'/>\r\n" +
" </SequencePoints>\r\n" +
" </Method>\r\n" +
" </Methods>\r\n" +
" </Class>\r\n" +
" </Classes>\r\n" +
" </Module>\r\n" +
" </Modules>\r\n" +
"</CoverageSession>";
return new StringReader(xml); return new StringReader(xml);
} }

Loading…
Cancel
Save