DEV Community

Raghwendra Sonu
Raghwendra Sonu

Posted on

2 1

How to use Junit Annotation in Android UI Framework- Kotlin & Espresso based

Problem Statement:
We need to add a capability in the framework, where they can Create and use JUnit tags to filter/group and run tests. e.g.

@Sanity
@Regression
@MyAnnotation

So, basically we will Run specific Android Espresso tests by creating custom annotations.

Solution:
Step 1) Create a custom annotation

import java.lang.annotation.Retention
import java.lang.annotation.RetentionPolicy

//Create Annotation Class- Step3
@Target(
    AnnotationTarget.FUNCTION,
    AnnotationTarget.PROPERTY_GETTER,
    AnnotationTarget.PROPERTY_SETTER,
    AnnotationTarget.ANNOTATION_CLASS,
    AnnotationTarget.CLASS
)
@Retention(
    RetentionPolicy.RUNTIME
)
annotation class MyAnnotation\
Enter fullscreen mode Exit fullscreen mode

@Target specifies the possible kinds of elements which can be annotated with the annotation (classes, functions, properties, expressions etc.)

We used it for annotate some functions, so we use AnnotationTarget.FUNCTION

@Retention specifies whether the annotation is stored in the compiled class files and whether it’s visible through reflection at runtime (by default, both are true).

AnnotationRetention.RUNTIME makes sure that the Rat annotation is visible to the test runner during the runtime.

Step 2) Annotate @MyAnnotation on the tests you want to run

@Test @MyAnnotation
fun AddTaskToDoListTestAndMarkDone() {
   ......
   ......
}
Enter fullscreen mode Exit fullscreen mode

Step 3) Use gradlew to run only MyAnnotation tests

./gradlew connectedAndroidTest -P android.testInstrumentationRunnerArguments.annotation=com.example.todolist.app.MyAnnotation

Enter fullscreen mode Exit fullscreen mode

Sentry blog image

The countdown to March 31 is on.

Make the switch from app center suck less with Sentry.

Read more

Top comments (0)

Sentry growth stunted Image

If you are wasting time trying to track down the cause of a crash, it’s time for a better solution. Get your crash rates to zero (or close to zero as possible) with less time and effort.

Try Sentry for more visibility into crashes, better workflow tools, and customizable alerts and reporting.

Switch Tools

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay