Browse Source
Code that is not visited is now being displayed in the Code Coverage window. git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@6442 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61pull/1/head
28 changed files with 976 additions and 579 deletions
@ -0,0 +1,18 @@ |
|||||||
|
// <file>
|
||||||
|
// <copyright see="prj:///doc/copyright.txt"/>
|
||||||
|
// <license see="prj:///doc/license.txt"/>
|
||||||
|
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
|
||||||
|
// <version>$Revision$</version>
|
||||||
|
// </file>
|
||||||
|
|
||||||
|
using System; |
||||||
|
|
||||||
|
namespace ICSharpCode.CodeCoverage |
||||||
|
{ |
||||||
|
public interface ICodeCoverageWithVisits |
||||||
|
{ |
||||||
|
string Name { get; } |
||||||
|
int GetVisitedCodeLength(); |
||||||
|
int GetUnvisitedCodeLength(); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,62 @@ |
|||||||
|
// <file>
|
||||||
|
// <copyright see="prj:///doc/copyright.txt"/>
|
||||||
|
// <license see="prj:///doc/license.txt"/>
|
||||||
|
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
|
||||||
|
// <version>$Revision$</version>
|
||||||
|
// </file>
|
||||||
|
|
||||||
|
using System; |
||||||
|
using System.IO; |
||||||
|
using System.Runtime.Remoting.Messaging; |
||||||
|
using ICSharpCode.CodeCoverage; |
||||||
|
|
||||||
|
namespace ICSharpCode.CodeCoverage.Tests.Coverage |
||||||
|
{ |
||||||
|
/// <summary>
|
||||||
|
/// Description of CodeCoverageResultsTestsBase.
|
||||||
|
/// </summary>
|
||||||
|
public abstract class CodeCoverageResultsTestsBase |
||||||
|
{ |
||||||
|
public CodeCoverageResults results; |
||||||
|
|
||||||
|
public CodeCoverageResults CreateCodeCoverageResults(string xml) |
||||||
|
{ |
||||||
|
StringReader reader = new StringReader(xml); |
||||||
|
results = new CodeCoverageResults(reader); |
||||||
|
return results; |
||||||
|
} |
||||||
|
|
||||||
|
public CodeCoverageModule FirstModule { |
||||||
|
get { return results.Modules[0]; } |
||||||
|
} |
||||||
|
|
||||||
|
public CodeCoverageModule SecondModule { |
||||||
|
get { return results.Modules[1]; } |
||||||
|
} |
||||||
|
|
||||||
|
public CodeCoverageMethod FirstModuleFirstMethod { |
||||||
|
get { return FirstModule.Methods[0]; } |
||||||
|
} |
||||||
|
|
||||||
|
public CodeCoverageMethod FirstModuleSecondMethod { |
||||||
|
get { return FirstModule.Methods[1]; } |
||||||
|
} |
||||||
|
|
||||||
|
public CodeCoverageSequencePoint FirstModuleFirstMethodFirstSequencePoint { |
||||||
|
get { return FirstModuleFirstMethod.SequencePoints[0]; } |
||||||
|
} |
||||||
|
|
||||||
|
public CodeCoverageSequencePoint FirstModuleFirstMethodSecondSequencePoint { |
||||||
|
get { return FirstModuleFirstMethod.SequencePoints[1]; } |
||||||
|
} |
||||||
|
|
||||||
|
public CodeCoverageSequencePoint FirstModuleFirstMethodThirdSequencePoint { |
||||||
|
get { return FirstModuleFirstMethod.SequencePoints[2]; } |
||||||
|
} |
||||||
|
|
||||||
|
public CodeCoverageSequencePoint CreateSequencePoint() |
||||||
|
{ |
||||||
|
return new CodeCoverageSequencePoint(); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -1,33 +0,0 @@ |
|||||||
// <file>
|
|
||||||
// <copyright see="prj:///doc/copyright.txt"/>
|
|
||||||
// <license see="prj:///doc/license.txt"/>
|
|
||||||
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
|
|
||||||
// <version>$Revision$</version>
|
|
||||||
// </file>
|
|
||||||
|
|
||||||
using ICSharpCode.CodeCoverage; |
|
||||||
using NUnit.Framework; |
|
||||||
using System; |
|
||||||
|
|
||||||
namespace ICSharpCode.CodeCoverage.Tests.Coverage |
|
||||||
{ |
|
||||||
/// <summary>
|
|
||||||
/// Ensures that a code coverage module that has no included methods
|
|
||||||
/// points is flagged as excluded.
|
|
||||||
/// </summary>
|
|
||||||
[TestFixture] |
|
||||||
public class ExcludedModuleTestFixture |
|
||||||
{ |
|
||||||
[Test] |
|
||||||
public void IsExcluded() |
|
||||||
{ |
|
||||||
CodeCoverageModule module = new CodeCoverageModule("test"); |
|
||||||
CodeCoverageMethod method = new CodeCoverageMethod("Test1", "MyTestFixture"); |
|
||||||
CodeCoverageSequencePoint pt = new CodeCoverageSequencePoint(@"c:\test\MyTestFixture.cs", 0, 10, 0, 10, 20, true); |
|
||||||
method.SequencePoints.Add(pt); |
|
||||||
module.Methods.Add(method); |
|
||||||
|
|
||||||
Assert.IsTrue(module.IsExcluded, "Module should be excluded."); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
@ -0,0 +1,148 @@ |
|||||||
|
// <file>
|
||||||
|
// <copyright see="prj:///doc/copyright.txt"/>
|
||||||
|
// <license see="prj:///doc/license.txt"/>
|
||||||
|
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
|
||||||
|
// <version>$Revision$</version>
|
||||||
|
// </file>
|
||||||
|
|
||||||
|
using System; |
||||||
|
using ICSharpCode.CodeCoverage; |
||||||
|
using NUnit.Framework; |
||||||
|
|
||||||
|
namespace ICSharpCode.CodeCoverage.Tests.Coverage |
||||||
|
{ |
||||||
|
[TestFixture] |
||||||
|
public class SequencePointTests : CodeCoverageResultsTestsBase |
||||||
|
{ |
||||||
|
CodeCoverageSequencePoint lhs; |
||||||
|
CodeCoverageSequencePoint rhs; |
||||||
|
|
||||||
|
[SetUp] |
||||||
|
public void Init() |
||||||
|
{ |
||||||
|
lhs = base.CreateSequencePoint(); |
||||||
|
rhs = base.CreateSequencePoint(); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void Equals_HaveSameValuesForAllProperties_ReturnsTrue() |
||||||
|
{ |
||||||
|
AssertSequencePointsAreEqual(); |
||||||
|
} |
||||||
|
|
||||||
|
void AssertSequencePointsAreEqual() |
||||||
|
{ |
||||||
|
bool result = Compare(); |
||||||
|
Assert.IsTrue(result); |
||||||
|
} |
||||||
|
|
||||||
|
void AssertSequencePointsAreNotEqual() |
||||||
|
{ |
||||||
|
bool result = Compare(); |
||||||
|
Assert.IsFalse(result); |
||||||
|
} |
||||||
|
|
||||||
|
bool Compare() |
||||||
|
{ |
||||||
|
return lhs.Equals(rhs); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void Equals_NullParameterPassed_ReturnsFalse() |
||||||
|
{ |
||||||
|
bool result = lhs.Equals(null); |
||||||
|
|
||||||
|
Assert.IsFalse(result); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void Equals_DocumentsAreDifferent_ReturnsFalse() |
||||||
|
{ |
||||||
|
rhs.Document = "abc"; |
||||||
|
AssertSequencePointsAreNotEqual(); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void Equals_ColumnsAreDifferent_ReturnsFalse() |
||||||
|
{ |
||||||
|
rhs.Column = 4; |
||||||
|
AssertSequencePointsAreNotEqual(); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void Equals_EndColumnsAreDifferent_ReturnsFalse() |
||||||
|
{ |
||||||
|
rhs.EndColumn = 4; |
||||||
|
AssertSequencePointsAreNotEqual(); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void Equals_EndLinesAreDifferent_ReturnsFalse() |
||||||
|
{ |
||||||
|
rhs.EndLine = 4; |
||||||
|
AssertSequencePointsAreNotEqual(); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void Equals_LinesAreDifferent_ReturnsFalse() |
||||||
|
{ |
||||||
|
rhs.Line = 4; |
||||||
|
AssertSequencePointsAreNotEqual(); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void Equals_VisitCountsAreDifferent_ReturnsFalse() |
||||||
|
{ |
||||||
|
rhs.VisitCount = 4; |
||||||
|
AssertSequencePointsAreNotEqual(); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void Equals_LengthsAreDifferent_ReturnsFalse() |
||||||
|
{ |
||||||
|
rhs.Length = 4; |
||||||
|
AssertSequencePointsAreNotEqual(); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void ToString_HasDocument_ReturnsExpectedStringContainingAllPropertyValues() |
||||||
|
{ |
||||||
|
lhs.Document = "test"; |
||||||
|
lhs.VisitCount = 2; |
||||||
|
lhs.Column = 1; |
||||||
|
lhs.Line = 3; |
||||||
|
lhs.EndLine = 4; |
||||||
|
lhs.EndColumn = 5; |
||||||
|
lhs.Length = 6; |
||||||
|
|
||||||
|
string toString = lhs.ToString(); |
||||||
|
string expectedString = "Document: 'test' VisitCount: 2 Line: 3 Col: 1 EndLine: 4 EndCol: 5 Length: 6"; |
||||||
|
|
||||||
|
Assert.AreEqual(expectedString, toString); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void HasDocument_WhenDocumentIsNull_ReturnsFalse() |
||||||
|
{ |
||||||
|
lhs.Document = null; |
||||||
|
bool result = lhs.HasDocument(); |
||||||
|
Assert.IsFalse(result); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void HasDocument_WhenDocumentIsEmptyString_ReturnsFalse() |
||||||
|
{ |
||||||
|
lhs.Document = String.Empty; |
||||||
|
bool result = lhs.HasDocument(); |
||||||
|
Assert.IsFalse(result); |
||||||
|
} |
||||||
|
|
||||||
|
[Test] |
||||||
|
public void HasDocument_WhenDocumentIsNotEmptyString_ReturnsTrue() |
||||||
|
{ |
||||||
|
lhs.Document = "abc"; |
||||||
|
bool result = lhs.HasDocument(); |
||||||
|
Assert.IsTrue(result); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue