Polish 'Ignore JUnit annotations when caching test contexts'

See gh-28563
This commit is contained in:
Phillip Webb 2021-11-08 13:00:31 -08:00
parent 23876d8a32
commit 8a14e1e2e9
2 changed files with 24 additions and 3 deletions

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2019 the original author or authors. * Copyright 2012-2021 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -386,7 +386,7 @@ class ImportsContextCustomizer implements ContextCustomizer {
} }
/** /**
* {@link AnnotationFilter} for Spock annotations. * {@link AnnotationFilter} for JUnit annotations.
*/ */
private static final class JunitAnnotationFilter implements AnnotationFilter { private static final class JunitAnnotationFilter implements AnnotationFilter {
@ -396,4 +396,5 @@ class ImportsContextCustomizer implements ContextCustomizer {
} }
} }
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2019 the original author or authors. * Copyright 2012-2021 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -22,6 +22,8 @@ import java.util.Collections;
import java.util.Set; import java.util.Set;
import kotlin.Metadata; import kotlin.Metadata;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.spockframework.runtime.model.SpecMetadata; import org.spockframework.runtime.model.SpecMetadata;
import spock.lang.Issue; import spock.lang.Issue;
@ -72,6 +74,12 @@ class ImportsContextCustomizerTests {
.isEqualTo(new ImportsContextCustomizer(SecondSpockLangAnnotatedTestClass.class)); .isEqualTo(new ImportsContextCustomizer(SecondSpockLangAnnotatedTestClass.class));
} }
@Test
void customizersForTestClassesWithDifferentJunitAnnotationsAreEqual() {
assertThat(new ImportsContextCustomizer(FirstJunitAnnotatedTestClass.class))
.isEqualTo(new ImportsContextCustomizer(SecondJunitAnnotatedTestClass.class));
}
@Import(TestImportSelector.class) @Import(TestImportSelector.class)
@Indicator1 @Indicator1
static class FirstImportSelectorAnnotatedClass { static class FirstImportSelectorAnnotatedClass {
@ -126,6 +134,18 @@ class ImportsContextCustomizerTests {
} }
@Nested
@Import(TestImportSelector.class)
static class FirstJunitAnnotatedTestClass {
}
@Tag("test")
@Import(TestImportSelector.class)
static class SecondJunitAnnotatedTestClass {
}
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@interface Indicator1 { @interface Indicator1 {