From ca3915fee097c657385f2cc5154a920cb0683df5 Mon Sep 17 00:00:00 2001 From: Christof Thalhofer Date: Sat, 1 Jul 2017 10:11:06 +0200 Subject: [PATCH] No Unittests TextFile That was a try for possible IDE-Integration. I deleted that code. --- .settings | 13 ++++++------- .src/TestRunner/FmTrace.class | 8 ++++---- .src/TestRunner/UnitTest.class | 20 ++++++++------------ .src/TesteStartRunner.module | 5 +++-- unittesthelloworld-0.0.1.tar.gz | Bin 11979 -> 11919 bytes 5 files changed, 21 insertions(+), 25 deletions(-) diff --git a/.settings b/.settings index d6abd2247..66adb124e 100644 --- a/.settings +++ b/.settings @@ -2,8 +2,7 @@ Count=0 [DebugWindow] -Count=1 -DebugWindow[1]="TestClass" +Count=0 [DebugWindow/$MyContainer] Geometry=[30,98,345,280] @@ -330,12 +329,12 @@ Path="gb.deg.unit.gambas" File[1]=".src/TestRunner/FmRunner.form" File[2]=".src/TestRunner/FmTrace.form" File[3]=".src/TestRunner/FmRunner.class:28.17" -File[4]=".src/TestRunner/FmTrace.class:40.64" -Active=7 +File[4]=".src/TestRunner/FmTrace.class:9.121" +Active=4 Count=24 -File[5]=".src/TesteStartRunner.module:4.12" +File[5]=".src/TesteStartRunner.module:4.14" File[6]=".src/TestMyself/TestErrorsAndFailures.class:0.4" -File[7]=".src/TestRunner/UnitTest.class:0.179" +File[7]=".src/TestRunner/UnitTest.class:36.166" File[8]=".src/TestSuite/TestSuite.class:18.89" File[9]=".src/TestSuite/ITestCase.class:0.3" File[10]=".src/TestSuite/TestCase.class:0.7" @@ -352,7 +351,7 @@ File[20]=".src/TestSuite/TestError.class:0.1" File[21]=".src/TestSuite/TestErrors.class:0.15" File[22]=".src/TestSuite/TestParameter.class:0.1" File[23]=".src/TestSuite/TestParameters.class:0.1" -File[24]=".src/TestSuite/TestResult.class:0.2" +File[24]=".src/TestSuite/TestResult.class:0.125" [Watches] Count=0 diff --git a/.src/TestRunner/FmTrace.class b/.src/TestRunner/FmTrace.class index 4b9eb422a..b7affb012 100644 --- a/.src/TestRunner/FmTrace.class +++ b/.src/TestRunner/FmTrace.class @@ -116,10 +116,10 @@ Public Sub ResultEvent_AfterAddFailure(oError As TestError) If tvTrace["Root"].Picture = $PictureOk Then - Debug "Root";; tvTrace["Root"].Picture - Debug "Error";; $PictureError - Debug "Fail";; $PictureFail - Debug "Set Fail" + 'Debug "Root";; tvTrace["Root"].Picture + 'Debug "Error";; $PictureError + 'Debug "Fail";; $PictureFail + 'Debug "Set Fail" tvTrace["Root"].Picture = $PictureFail Endif diff --git a/.src/TestRunner/UnitTest.class b/.src/TestRunner/UnitTest.class index 1c45e6c1e..09d36ceb8 100644 --- a/.src/TestRunner/UnitTest.class +++ b/.src/TestRunner/UnitTest.class @@ -12,9 +12,9 @@ Private $DoSelfTest As Boolean Public Sub _new() - If UnittestFileNotExist() = False Then - $Suite = New TestSuite - Endif + 'If UnittestFileNotExist() = False Then + $Suite = New TestSuite + 'Endif End @@ -40,10 +40,8 @@ Public Sub ShowTestForm() Dim fm As FmRunner - If UnittestFileNotExist() = False Then - fm = New FmRunner(Null, Me.DoSelfTest) - fm.Show() - Endif + fm = New FmRunner(Null, Me.DoSelfTest) + fm.Show() End '' Runs the Unittest and prints the result to the console. Optional limited to one testclass and/or one testmethod. @@ -52,10 +50,8 @@ Public Sub Test(Optional ContainerName As String, Optional CaseName As String, O Dim Res As New TestResult - If UnittestFileNotExist() = False Then - Me._RunTests(Res, ContainerName, CaseName, ShowDebug, Me.DoSelfTest) - Me._PrintResult(Res) - Endif + Me._RunTests(Res, ContainerName, CaseName, ShowDebug, Me.DoSelfTest) + Me._PrintResult(Res) End @@ -171,7 +167,7 @@ Static Public Function GetAllTestContainerNames(Optional DoSelfTest As Boolean) If TestClass.Parent Then If TestClass.Parent.Name = "ATestContainer" Then strName = String.UCaseFirst(String.Lower(TestClass.Name)) - Debug "Add to testclasses: ";; strName + 'Debug "Add to testclasses: ";; strName TestContainernames.Add(strName) Endif Endif diff --git a/.src/TesteStartRunner.module b/.src/TesteStartRunner.module index a53bea765..1b09d8021 100644 --- a/.src/TesteStartRunner.module +++ b/.src/TesteStartRunner.module @@ -10,7 +10,8 @@ Public Sub Main() ' Do Selftest: r.DoSelfTest = True - r.Test() - 'r.ShowTestForm() + + 'r.Test() + r.ShowTestForm() End diff --git a/unittesthelloworld-0.0.1.tar.gz b/unittesthelloworld-0.0.1.tar.gz index 22198af58848786d63ac86599185ccde9fd5d2af..c7b6b15e755bde37b8b616d7a4db1cb9ae64f5b8 100644 GIT binary patch literal 11919 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