From 7cd024457825c2a4359777119930c7bb864c06e2 Mon Sep 17 00:00:00 2001 From: Dmitri Korobtsov Date: Thu, 9 Apr 2020 13:53:13 +0300 Subject: [PATCH] Adding Issues, Layer, Tag, Tags annotations for Allure Server. (#50) --- .../allure/android/annotations/Issues.kt | 13 ++++ .../allure/android/annotations/Layer.kt | 12 ++++ .../qameta/allure/android/annotations/Tag.kt | 12 ++++ .../qameta/allure/android/annotations/Tags.kt | 12 ++++ .../android/utils/ResultsUtilsCommon.kt | 67 ++++++++++++++----- 5 files changed, 101 insertions(+), 15 deletions(-) create mode 100644 allure-android-commons/src/main/kotlin/io/qameta/allure/android/annotations/Issues.kt create mode 100644 allure-android-commons/src/main/kotlin/io/qameta/allure/android/annotations/Layer.kt create mode 100644 allure-android-commons/src/main/kotlin/io/qameta/allure/android/annotations/Tag.kt create mode 100644 allure-android-commons/src/main/kotlin/io/qameta/allure/android/annotations/Tags.kt diff --git a/allure-android-commons/src/main/kotlin/io/qameta/allure/android/annotations/Issues.kt b/allure-android-commons/src/main/kotlin/io/qameta/allure/android/annotations/Issues.kt new file mode 100644 index 0000000..d866900 --- /dev/null +++ b/allure-android-commons/src/main/kotlin/io/qameta/allure/android/annotations/Issues.kt @@ -0,0 +1,13 @@ +package io.qameta.allure.android.annotations + + +import java.lang.annotation.Inherited + +/** + * Wrapper annotation for [Issue]. + */ +@Inherited +@MustBeDocumented +@Retention(AnnotationRetention.RUNTIME) +@Target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.CLASS, AnnotationTarget.FILE) +annotation class Issues(vararg val value: Issue) diff --git a/allure-android-commons/src/main/kotlin/io/qameta/allure/android/annotations/Layer.kt b/allure-android-commons/src/main/kotlin/io/qameta/allure/android/annotations/Layer.kt new file mode 100644 index 0000000..6217e2b --- /dev/null +++ b/allure-android-commons/src/main/kotlin/io/qameta/allure/android/annotations/Layer.kt @@ -0,0 +1,12 @@ +package io.qameta.allure.android.annotations + +import java.lang.annotation.Inherited + +/** + * Used to set layer for tests. + */ +@Inherited +@MustBeDocumented +@Retention(AnnotationRetention.RUNTIME) +@Target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.CLASS, AnnotationTarget.FILE) +annotation class Layer(val value: String) diff --git a/allure-android-commons/src/main/kotlin/io/qameta/allure/android/annotations/Tag.kt b/allure-android-commons/src/main/kotlin/io/qameta/allure/android/annotations/Tag.kt new file mode 100644 index 0000000..8df4871 --- /dev/null +++ b/allure-android-commons/src/main/kotlin/io/qameta/allure/android/annotations/Tag.kt @@ -0,0 +1,12 @@ +package io.qameta.allure.android.annotations + +import java.lang.annotation.Inherited + +/** + * Used to set tag for tests. + */ +@Inherited +@MustBeDocumented +@Retention(AnnotationRetention.RUNTIME) +@Target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.CLASS, AnnotationTarget.FILE) +annotation class Tag(val value: String) diff --git a/allure-android-commons/src/main/kotlin/io/qameta/allure/android/annotations/Tags.kt b/allure-android-commons/src/main/kotlin/io/qameta/allure/android/annotations/Tags.kt new file mode 100644 index 0000000..d45cb5b --- /dev/null +++ b/allure-android-commons/src/main/kotlin/io/qameta/allure/android/annotations/Tags.kt @@ -0,0 +1,12 @@ +package io.qameta.allure.android.annotations + +import java.lang.annotation.Inherited + +/** + * Wrapper annotation for [Tag]. + */ +@Inherited +@MustBeDocumented +@Retention(AnnotationRetention.RUNTIME) +@Target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.CLASS, AnnotationTarget.FILE) +annotation class Tags(vararg val value: Tag) diff --git a/allure-android-commons/src/main/kotlin/io/qameta/allure/android/utils/ResultsUtilsCommon.kt b/allure-android-commons/src/main/kotlin/io/qameta/allure/android/utils/ResultsUtilsCommon.kt index 12540a2..4d346bd 100644 --- a/allure-android-commons/src/main/kotlin/io/qameta/allure/android/utils/ResultsUtilsCommon.kt +++ b/allure-android-commons/src/main/kotlin/io/qameta/allure/android/utils/ResultsUtilsCommon.kt @@ -1,6 +1,9 @@ package io.qameta.allure.android.utils -import org.junit.runner.Description +import io.qameta.allure.android.annotations.Issues +import io.qameta.allure.android.annotations.Layer +import io.qameta.allure.android.annotations.Tag +import io.qameta.allure.android.annotations.Tags import io.qameta.allure.android.SeverityLevel import io.qameta.allure.android.annotations.DisplayName import io.qameta.allure.android.annotations.Epic @@ -15,6 +18,7 @@ import io.qameta.allure.android.annotations.Story import io.qameta.allure.android.annotations.TmsLink import io.qameta.allure.android.model.Label import io.qameta.allure.android.model.Link +import org.junit.runner.Description import java.math.BigInteger import java.security.MessageDigest import java.util.Collections.emptyList @@ -32,6 +36,8 @@ const val OWNER_LABEL_NAME = "owner" const val EPIC_LABEL_NAME = "epic" const val FEATURE_LABEL_NAME = "feature" const val STORY_LABEL_NAME = "story" +const val LAYER_LABEL_NAME = "layer" +const val ISSUE_LABEL_TYPE = "issue" fun getMethodDisplayName(description: Description): String { @@ -43,10 +49,6 @@ fun getClassDisplayName(description: Description): String? { ?: description.className } -fun createTagLabel(tag: String): Label { - return createLabel(TAG_LABEL_NAME, tag) -} - fun createOwnerLabel(owner: String): Label { return createLabel(OWNER_LABEL_NAME, owner) } @@ -75,8 +77,8 @@ fun createLink(link: io.qameta.allure.android.annotations.Link): Link { return createLink(link.value, link.name, link.url, link.type) } -fun createLink(link: Issue): Link { - return createIssueLink(link.value) +fun createLink(issue: Issue): Link { + return createIssueLink(issue.value) } fun createIssueLink(value: String): Link { @@ -126,12 +128,32 @@ fun createFeatureLabel(value: String): Label { return createLabel(name = FEATURE_LABEL_NAME, value = value) } -fun createLabels(features: Stories): List