From f10fdf4a2db83c35fbc981b68f4845cdd375fec4 Mon Sep 17 00:00:00 2001 From: "Renat I. Kashapov" Date: Sat, 17 Oct 2020 10:46:34 +0300 Subject: [PATCH 1/7] Deleted .idea and .gradle from index --- .../executionHistory/executionHistory.lock | Bin 17 -> 0 bytes .gradle/6.3/fileChanges/last-build.bin | Bin 1 -> 0 bytes .gradle/6.3/fileHashes/fileHashes.lock | Bin 17 -> 0 bytes .gradle/6.3/gc.properties | 0 .../6.5/executionHistory/executionHistory.bin | Bin 20071 -> 0 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 0 bytes .gradle/6.5/fileChanges/last-build.bin | Bin 1 -> 0 bytes .gradle/6.5/fileHashes/fileHashes.bin | Bin 18697 -> 0 bytes .gradle/6.5/fileHashes/fileHashes.lock | Bin 17 -> 0 bytes .gradle/6.5/gc.properties | 0 .../buildOutputCleanup.lock | Bin 17 -> 0 bytes .gradle/buildOutputCleanup/cache.properties | 2 -- .gradle/checksums/checksums.lock | Bin 17 -> 0 bytes .gradle/vcs-1/gc.properties | 0 .idea/.gitignore | 3 --- .idea/compiler.xml | 10 --------- .idea/gradle.xml | 18 ---------------- .idea/jarRepositories.xml | 20 ------------------ .idea/misc.xml | 7 ------ .idea/vcs.xml | 6 ------ 20 files changed, 66 deletions(-) delete mode 100644 .gradle/6.3/executionHistory/executionHistory.lock delete mode 100644 .gradle/6.3/fileChanges/last-build.bin delete mode 100644 .gradle/6.3/fileHashes/fileHashes.lock delete mode 100644 .gradle/6.3/gc.properties delete mode 100644 .gradle/6.5/executionHistory/executionHistory.bin delete mode 100644 .gradle/6.5/executionHistory/executionHistory.lock delete mode 100644 .gradle/6.5/fileChanges/last-build.bin delete mode 100644 .gradle/6.5/fileHashes/fileHashes.bin delete mode 100644 .gradle/6.5/fileHashes/fileHashes.lock delete mode 100644 .gradle/6.5/gc.properties delete mode 100644 .gradle/buildOutputCleanup/buildOutputCleanup.lock delete mode 100644 .gradle/buildOutputCleanup/cache.properties delete mode 100644 .gradle/checksums/checksums.lock delete mode 100644 .gradle/vcs-1/gc.properties delete mode 100644 .idea/.gitignore delete mode 100644 .idea/compiler.xml delete mode 100644 .idea/gradle.xml delete mode 100644 .idea/jarRepositories.xml delete mode 100644 .idea/misc.xml delete mode 100644 .idea/vcs.xml diff --git a/.gradle/6.3/executionHistory/executionHistory.lock b/.gradle/6.3/executionHistory/executionHistory.lock deleted file mode 100644 index a7604be1ef6e9a790cafe5f2e4f8b638218152b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17 TcmZRUG;}#Ck+sR10RnOWA&mnv diff --git a/.gradle/6.3/fileChanges/last-build.bin b/.gradle/6.3/fileChanges/last-build.bin deleted file mode 100644 index f76dd238ade08917e6712764a16a22005a50573d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1 IcmZPo000310RR91 diff --git a/.gradle/6.3/fileHashes/fileHashes.lock b/.gradle/6.3/fileHashes/fileHashes.lock deleted file mode 100644 index 2b22044621848a8e6f14688644e644e50c0b6932..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17 TcmZP$SDwo3m;F4I0Rl__B^Cou diff --git a/.gradle/6.3/gc.properties b/.gradle/6.3/gc.properties deleted file mode 100644 index e69de29..0000000 diff --git a/.gradle/6.5/executionHistory/executionHistory.bin b/.gradle/6.5/executionHistory/executionHistory.bin deleted file mode 100644 index ca603136957a3946fa69672fa1e9609598fd0231..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20071 zcmeI)PiWIn90%}p9d(Mbco+`Eiwvi*CH-UCO$Ax$=9K->)jGjLNYmFPTh_#vv~`M3 zWCy`I9S)fY124i*CklEQ{s9jIZ|c>f2T{a>HxV>#8n#gn9qU2l8|cd;@4esey-#1$ zLm)ARX=ZqTV1izm}eOOR=eWy%R5ikZM#43H1~G7&kx+QeSM$Ph7tl0fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZafqy|D z#4x^H_Q!rY#sf&-dBO zg&pB@eP^PHhJr+8Ma_|@WRix(YF65ET(Xp6_n9L@U9rAyF%j<`5_<>xyWLpD4&Lc9 z5T8;_%bY2eR83|rRnOES*P4KTNqBp8!nh&@g>XDO&a4@Ba>5`D&#PKm{!Z#+2M#^` zdGC||;`PDK^^IR&?}}tsM$YQ*!#Q{}9AcfXWr+~1cS$jb&li~Vhrt&11x_q5)* z^x;-b!qy~6#nf&XRJZR7mP*VLz}t-iti3OD2dvw$HshQ_Lzv&C334WH!>lB00Iag zfB*srAbC+xP(l(Q_F9 diff --git a/.gradle/6.5/fileHashes/fileHashes.lock b/.gradle/6.5/fileHashes/fileHashes.lock deleted file mode 100644 index b89035bdbee3e3b6d10f21e051d4d887347333a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17 UcmZQ}>QJ4zd*P?03=qHu05u&1g#Z8m diff --git a/.gradle/6.5/gc.properties b/.gradle/6.5/gc.properties deleted file mode 100644 index e69de29..0000000 diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock deleted file mode 100644 index 125640c0661a242e02c3c8aa44ade74fd4ef2016..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17 TcmZRcxr{wXET`Ur0RkcbB@6>C diff --git a/.gradle/buildOutputCleanup/cache.properties b/.gradle/buildOutputCleanup/cache.properties deleted file mode 100644 index b774acd..0000000 --- a/.gradle/buildOutputCleanup/cache.properties +++ /dev/null @@ -1,2 +0,0 @@ -#Thu Oct 08 23:16:29 MSK 2020 -gradle.version=6.3 diff --git a/.gradle/checksums/checksums.lock b/.gradle/checksums/checksums.lock deleted file mode 100644 index 2cf264e3089226e34e453839915ee03153a95c53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17 TcmZR+wZ?0Uv*dYO1}FdkGnxbN diff --git a/.gradle/vcs-1/gc.properties b/.gradle/vcs-1/gc.properties deleted file mode 100644 index e69de29..0000000 diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 26d3352..0000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml deleted file mode 100644 index c8b5c9a..0000000 --- a/.idea/compiler.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml deleted file mode 100644 index 87ca0fc..0000000 --- a/.idea/gradle.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml deleted file mode 100644 index fdc392f..0000000 --- a/.idea/jarRepositories.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index b0ec460..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 94a25f7..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file From de77288e5aaa7e01c9a51362379b4e366f2cea14 Mon Sep 17 00:00:00 2001 From: "Renat I. Kashapov" Date: Sat, 24 Oct 2020 01:08:21 +0300 Subject: [PATCH 2/7] v.10 Test Framework was started. --- hw03-testFW/build.gradle | 17 +++++++++++++++++ hw03-testFW/src/main/java/ru/otus/App.java | 7 +++++++ settings.gradle | 3 +++ 3 files changed, 27 insertions(+) create mode 100644 hw03-testFW/build.gradle create mode 100644 hw03-testFW/src/main/java/ru/otus/App.java diff --git a/hw03-testFW/build.gradle b/hw03-testFW/build.gradle new file mode 100644 index 0000000..6e000d9 --- /dev/null +++ b/hw03-testFW/build.gradle @@ -0,0 +1,17 @@ +plugins { + id 'java' + id 'application' +} + +group 'ru.otus' +version '1.0-SNAPSHOT' + +repositories { + mavenCentral() +} + +dependencies { + testCompile group: 'junit', name: 'junit', version: '4.12' +} + +mainClassName = 'ru.otus.App' \ No newline at end of file diff --git a/hw03-testFW/src/main/java/ru/otus/App.java b/hw03-testFW/src/main/java/ru/otus/App.java new file mode 100644 index 0000000..9fb947e --- /dev/null +++ b/hw03-testFW/src/main/java/ru/otus/App.java @@ -0,0 +1,7 @@ +package ru.otus; + +public class App { + public static void main(String ... args){ + System.out.println("Hello, test Framework!"); + } +} diff --git a/settings.gradle b/settings.gradle index 9a32c0b..bb2cea4 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,2 +1,5 @@ rootProject.name = 'otus_hw' +include 'hw03-testFW' +include 'hw03-testFW' +include 'hw03-testFW' From 063f8cfdc1ad11c3774c531b062dca2ca6a6d310 Mon Sep 17 00:00:00 2001 From: "Renat I. Kashapov" Date: Sun, 25 Oct 2020 13:08:32 +0300 Subject: [PATCH 3/7] v11. Ready to check. --- hw03-testFW/build.gradle | 10 +-- hw03-testFW/src/main/java/ru/otus/After.java | 11 +++ hw03-testFW/src/main/java/ru/otus/App.java | 7 -- hw03-testFW/src/main/java/ru/otus/Before.java | 11 +++ hw03-testFW/src/main/java/ru/otus/Test.java | 11 +++ hw03-testFW/src/main/java/ru/otus/TestFW.java | 75 +++++++++++++++++++ .../src/main/java/ru/otus/TestedClass.java | 31 ++++++++ settings.gradle | 5 +- 8 files changed, 141 insertions(+), 20 deletions(-) create mode 100644 hw03-testFW/src/main/java/ru/otus/After.java delete mode 100644 hw03-testFW/src/main/java/ru/otus/App.java create mode 100644 hw03-testFW/src/main/java/ru/otus/Before.java create mode 100644 hw03-testFW/src/main/java/ru/otus/Test.java create mode 100644 hw03-testFW/src/main/java/ru/otus/TestFW.java create mode 100644 hw03-testFW/src/main/java/ru/otus/TestedClass.java diff --git a/hw03-testFW/build.gradle b/hw03-testFW/build.gradle index 6e000d9..791b924 100644 --- a/hw03-testFW/build.gradle +++ b/hw03-testFW/build.gradle @@ -6,12 +6,4 @@ plugins { group 'ru.otus' version '1.0-SNAPSHOT' -repositories { - mavenCentral() -} - -dependencies { - testCompile group: 'junit', name: 'junit', version: '4.12' -} - -mainClassName = 'ru.otus.App' \ No newline at end of file +mainClassName = 'ru.otus.TestFW' \ No newline at end of file diff --git a/hw03-testFW/src/main/java/ru/otus/After.java b/hw03-testFW/src/main/java/ru/otus/After.java new file mode 100644 index 0000000..9654aab --- /dev/null +++ b/hw03-testFW/src/main/java/ru/otus/After.java @@ -0,0 +1,11 @@ +package ru.otus; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.METHOD) +public @interface After { +} diff --git a/hw03-testFW/src/main/java/ru/otus/App.java b/hw03-testFW/src/main/java/ru/otus/App.java deleted file mode 100644 index 9fb947e..0000000 --- a/hw03-testFW/src/main/java/ru/otus/App.java +++ /dev/null @@ -1,7 +0,0 @@ -package ru.otus; - -public class App { - public static void main(String ... args){ - System.out.println("Hello, test Framework!"); - } -} diff --git a/hw03-testFW/src/main/java/ru/otus/Before.java b/hw03-testFW/src/main/java/ru/otus/Before.java new file mode 100644 index 0000000..4b294ac --- /dev/null +++ b/hw03-testFW/src/main/java/ru/otus/Before.java @@ -0,0 +1,11 @@ +package ru.otus; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.METHOD) +public @interface Before { +} diff --git a/hw03-testFW/src/main/java/ru/otus/Test.java b/hw03-testFW/src/main/java/ru/otus/Test.java new file mode 100644 index 0000000..29e8e5f --- /dev/null +++ b/hw03-testFW/src/main/java/ru/otus/Test.java @@ -0,0 +1,11 @@ +package ru.otus; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.METHOD) +public @interface Test { +} diff --git a/hw03-testFW/src/main/java/ru/otus/TestFW.java b/hw03-testFW/src/main/java/ru/otus/TestFW.java new file mode 100644 index 0000000..6a8c687 --- /dev/null +++ b/hw03-testFW/src/main/java/ru/otus/TestFW.java @@ -0,0 +1,75 @@ +package ru.otus; + +import java.lang.annotation.Annotation; +import java.lang.annotation.AnnotationTypeMismatchException; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.function.Predicate; + +public class TestFW { + static short failedTest; + public static void main(String ... args){ + System.out.println("Hello, Test Framework"); + testStarter(TestedClass.class); + } + static void testStarter(Class clazz) { + Method methods[] = clazz.getDeclaredMethods(); + List methodsWithAfterAnnotaion = new ArrayList<>(); + List methodsWithBeforeAnnotaion = new ArrayList<>(); + List methodsWithTestAnnotation = new ArrayList<>(); + for(Method method:methods) { + Annotation[] annotations = method.getDeclaredAnnotations(); + if (annotations.length!=0) + for (Annotation annotation:annotations) + switch (annotation.toString()) { + case ("@ru.otus.After()"): + methodsWithAfterAnnotaion.add(method); + break; + case ("@ru.otus.Before()"): + methodsWithBeforeAnnotaion.add(method); + break; + case ("@ru.otus.Test()"): + methodsWithTestAnnotation.add(method); + break; + default: + throw new AnnotationTypeMismatchException(method, "Unkown annotaion"); + } + } + methodsWithTestAnnotation.forEach(_methodTest -> { + Object testedObject; + try { + testedObject = clazz.getConstructor().newInstance(); + if (testedObject == null) + throw new NullPointerException(); + else + methodsExecution(methodsWithBeforeAnnotaion,testedObject); + try { + _methodTest.invoke(testedObject); + } + catch (Exception e){ + failedTest++; + } + methodsExecution(methodsWithAfterAnnotaion, testedObject); + } catch (InstantiationException| IllegalAccessException | InvocationTargetException | NoSuchMethodException | NullPointerException e) { + e.printStackTrace(); + } + + }); + System.out.println("Failed tests: " + failedTest); + System.out.println("Passed tests: " + (methodsWithTestAnnotation.size()-failedTest)); + } + + private static void methodsExecution(List methodList, Object object){ + methodList.forEach(_method -> { + try { + _method.invoke(object); + } + catch (IllegalAccessException | InvocationTargetException e){ + e.printStackTrace(); + } + }); + } +} diff --git a/hw03-testFW/src/main/java/ru/otus/TestedClass.java b/hw03-testFW/src/main/java/ru/otus/TestedClass.java new file mode 100644 index 0000000..1f558c3 --- /dev/null +++ b/hw03-testFW/src/main/java/ru/otus/TestedClass.java @@ -0,0 +1,31 @@ +package ru.otus; + +public class TestedClass { + + public TestedClass(){} + + @After + public void methodAfter1(){System.out.println("I'm methodAfter1 (this.hashCode(): " + hashCode() + ")");} + + @After + public void methodAfter2(){System.out.println("I'm methodAfter2 (this.hashCode(): " + hashCode() + ")");} + + @Before + public void methodBefore1(){ + System.out.println("I'm methodBefore1 (this.hashCode(): " + hashCode() + ")"); + } + + @Before + public void methodBefore2(){ + System.out.println("I'm methodBefore2 (this.hashCode(): " + hashCode() + ")"); + } + + @Test + public void methodTest1(){ + System.out.println("I'm methodTest1 (this.hashCode(): " + hashCode() + ")"); + throw new ArithmeticException(); + } + + @Test + public void methodTest2() {System.out.println("I'm methodTest2 (this.hachCode(): " + hashCode() + ")");} +} diff --git a/settings.gradle b/settings.gradle index bb2cea4..67ef2fa 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,5 +1,2 @@ rootProject.name = 'otus_hw' -include 'hw03-testFW' -include 'hw03-testFW' -include 'hw03-testFW' - +include 'hw03-testFW' \ No newline at end of file From 2589483e51591af1863060f81fe344b3f664734e Mon Sep 17 00:00:00 2001 From: "Renat I. Kashapov" Date: Mon, 26 Oct 2020 22:10:41 +0300 Subject: [PATCH 4/7] v12. Before refactoring. --- hw03-testFW/src/main/java/ru/otus/TestFW.java | 26 +++++-------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/hw03-testFW/src/main/java/ru/otus/TestFW.java b/hw03-testFW/src/main/java/ru/otus/TestFW.java index 6a8c687..729d5bc 100644 --- a/hw03-testFW/src/main/java/ru/otus/TestFW.java +++ b/hw03-testFW/src/main/java/ru/otus/TestFW.java @@ -7,36 +7,22 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import java.util.function.Predicate; public class TestFW { - static short failedTest; + private static short failedTest; public static void main(String ... args){ System.out.println("Hello, Test Framework"); testStarter(TestedClass.class); } static void testStarter(Class clazz) { - Method methods[] = clazz.getDeclaredMethods(); + Method [] methods = clazz.getDeclaredMethods(); List methodsWithAfterAnnotaion = new ArrayList<>(); List methodsWithBeforeAnnotaion = new ArrayList<>(); List methodsWithTestAnnotation = new ArrayList<>(); - for(Method method:methods) { - Annotation[] annotations = method.getDeclaredAnnotations(); - if (annotations.length!=0) - for (Annotation annotation:annotations) - switch (annotation.toString()) { - case ("@ru.otus.After()"): - methodsWithAfterAnnotaion.add(method); - break; - case ("@ru.otus.Before()"): - methodsWithBeforeAnnotaion.add(method); - break; - case ("@ru.otus.Test()"): - methodsWithTestAnnotation.add(method); - break; - default: - throw new AnnotationTypeMismatchException(method, "Unkown annotaion"); - } + for(Method method:methods){ + if(method.isAnnotationPresent(Before.class)){ methodsWithBeforeAnnotaion.add(method);} + if(method.isAnnotationPresent(Test.class)){methodsWithTestAnnotation.add(method);} + if(method.isAnnotationPresent(After.class)){methodsWithAfterAnnotaion.add(method);} } methodsWithTestAnnotation.forEach(_methodTest -> { Object testedObject; From 958b9fbce1dca84fe206b44b552b150f936ce494 Mon Sep 17 00:00:00 2001 From: "Renat I. Kashapov" Date: Tue, 27 Oct 2020 01:03:32 +0300 Subject: [PATCH 5/7] v13. Refactored. --- hw03-testFW/src/main/java/ru/otus/TestFW.java | 51 ++++++++++--------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/hw03-testFW/src/main/java/ru/otus/TestFW.java b/hw03-testFW/src/main/java/ru/otus/TestFW.java index 729d5bc..1101900 100644 --- a/hw03-testFW/src/main/java/ru/otus/TestFW.java +++ b/hw03-testFW/src/main/java/ru/otus/TestFW.java @@ -1,12 +1,9 @@ package ru.otus; import java.lang.annotation.Annotation; -import java.lang.annotation.AnnotationTypeMismatchException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.util.*; public class TestFW { private static short failedTest; @@ -16,42 +13,46 @@ public static void main(String ... args){ } static void testStarter(Class clazz) { Method [] methods = clazz.getDeclaredMethods(); - List methodsWithAfterAnnotaion = new ArrayList<>(); - List methodsWithBeforeAnnotaion = new ArrayList<>(); - List methodsWithTestAnnotation = new ArrayList<>(); + Map, Set> annotationSetMethod = new HashMap<>(); + annotationSetMethod.put(Before.class, new HashSet<>()); + annotationSetMethod.put(Test.class, new HashSet<>()); + annotationSetMethod.put(After.class, new HashSet<>()); for(Method method:methods){ - if(method.isAnnotationPresent(Before.class)){ methodsWithBeforeAnnotaion.add(method);} - if(method.isAnnotationPresent(Test.class)){methodsWithTestAnnotation.add(method);} - if(method.isAnnotationPresent(After.class)){methodsWithAfterAnnotaion.add(method);} + for(Annotation annotation:method.getDeclaredAnnotations()){ + Set methodSet = annotationSetMethod.get(annotation.annotationType()); + if(methodSet!=null){ + methodSet.add(method); + } + } } - methodsWithTestAnnotation.forEach(_methodTest -> { + annotationSetMethod.get(Test.class).forEach(methodTest -> { Object testedObject; try { testedObject = clazz.getConstructor().newInstance(); - if (testedObject == null) + if (testedObject == null) { throw new NullPointerException(); - else - methodsExecution(methodsWithBeforeAnnotaion,testedObject); - try { - _methodTest.invoke(testedObject); - } - catch (Exception e){ - failedTest++; + } else { + try { + methodsExecution(annotationSetMethod.get(Before.class), testedObject); + methodTest.invoke(testedObject); + methodsExecution(annotationSetMethod.get(After.class), testedObject); + } catch (Exception e) { + failedTest++; + } } - methodsExecution(methodsWithAfterAnnotaion, testedObject); - } catch (InstantiationException| IllegalAccessException | InvocationTargetException | NoSuchMethodException | NullPointerException e) { + } catch (Exception e) { e.printStackTrace(); } }); System.out.println("Failed tests: " + failedTest); - System.out.println("Passed tests: " + (methodsWithTestAnnotation.size()-failedTest)); + System.out.println("Passed tests: " + (methods.length-failedTest)); } - private static void methodsExecution(List methodList, Object object){ - methodList.forEach(_method -> { + private static void methodsExecution(Set methodSet, Object testedObject){ + methodSet.forEach(method -> { try { - _method.invoke(object); + method.invoke(testedObject); } catch (IllegalAccessException | InvocationTargetException e){ e.printStackTrace(); From 809ea0534b3f522380b505d709f5e436217fa252 Mon Sep 17 00:00:00 2001 From: 1121977 <57187986+1121977@users.noreply.github.com> Date: Tue, 27 Oct 2020 01:18:53 +0300 Subject: [PATCH 6/7] Delete A.java --- src/main/java/A.java | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 src/main/java/A.java diff --git a/src/main/java/A.java b/src/main/java/A.java deleted file mode 100644 index 6be5562..0000000 --- a/src/main/java/A.java +++ /dev/null @@ -1,5 +0,0 @@ -public class A { - public static void main(String ... args){ - System.out.println("Hello, gradle + git!"); - } -} From af8bb30d4cf96e51dc6dfc84a19e9336ea56b2b1 Mon Sep 17 00:00:00 2001 From: 1121977 Date: Thu, 22 Apr 2021 16:41:17 +0300 Subject: [PATCH 7/7] README update --- README.md | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index c29a8be..fd73923 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,14 @@ -# Примеры для курса "Разработчик Java" в OTUS +Написать свой тестовый фреймворк. -Группа 2020-09 +Поддержать свои аннотации @Test, @Before, @After. -### Преподаватели -Сергей Петрелевич
-Стрекалов Павел
-Александр Оруджев
-Вячеслав Лапин
-Виталий Куценко
-Дмитрий Коган +Запускать вызовом статического метода с именем класса с тестами. -Студент: -Kashapov Renat (Кашапов Ренат)
-renat.kashapov@gmail.com \ No newline at end of file +Т.е. надо сделать: + +создать три аннотации - @Test, @Before, @After. +Создать класс-тест, в котором будут методы, отмеченные аннотациями. +Создать "запускалку теста". На вход она должна получать имя класса с тестами, в котором следует найти и запустить методы отмеченные аннотациями и пункта 1. +Алгоритм запуска должен быть следующий:: метод(ы) Before текущий метод Test метод(ы) After для каждой такой "тройки" надо создать СВОЙ объект класса-теста. +Исключение в одном тесте не должно прерывать весь процесс тестирования. +На основании возникших во время тестирования исключений вывести статистику выполнения тестов (сколько прошло успешно, сколько упало, сколько было всего)