Simon Baslé
42874178ce
Polish RecordApplicationEvents javadoc: add note on captured threads
...
This commit clarifies that the annotation is used to capture events that
are fired from the test `Thread` or descendant threads, since the test
framework uses `InheritableThreadLocal` to store captured events now.
See gh-31079
See gh-30020
2023-11-09 11:07:53 +01:00
yanghaojia
fe14c85ada
Fix link in Javadoc of ConfigurableMockMvcBuilder
...
See gh-31542
2023-11-02 14:25:35 +01:00
Sam Brannen
a5841fede5
Polishing
2023-11-01 16:23:18 +01:00
Stéphane Nicoll
115a46c5e8
Polish
2023-10-31 17:58:13 +01:00
Sam Brannen
3d248607dc
Update copyright headers
2023-10-30 15:21:02 +01:00
Sam Brannen
cb9382d986
Polishing
2023-10-29 10:16:32 +01:00
Sam Brannen
6c4cbd2aab
Support ContextLoader config in @SpringJUnit[Web]Config
...
Prior to this commit, @SpringJUnitConfig and @SpringJUnitWebConfig
did not declare `loader` attributes that alias @ContextConfiguration's
`loader` attribute. Consequently, it was not possible to configure a
custom ContextLoader via those annotations.
The lack of those `loader` attributes was an oversight, and this commit
introduces them to support custom ContextLoader configuration directly
via the @SpringJUnitConfig and @SpringJUnitWebConfig annotations.
Closes gh-31498
2023-10-25 16:12:17 +02:00
Sam Brannen
d7e6b79336
Log and skip resource hint registration for classpath location patterns
...
Since we do not yet have support for registering resource hints for
classpath location patterns, we have decided to explicitly skip such
resources and log a warning to inform users that they need to manually
supply resource hints for the exact resources needed by their
application.
This commit applies this change for @PropertySource and
@TestPropertySource.
See gh-31162
Closes gh-31429
2023-10-25 12:42:36 +02:00
rstoyanchev
e57b942b4d
MockMvcBuilder supports filter name in addition to initParams
...
Closes gh-31474
2023-10-24 10:33:58 +01:00
Sam Brannen
2d792f000a
Polish "Apply SingleSpaceSeparator Checkstyle module"
...
See gh-31469
2023-10-22 14:18:18 +02:00
Johnny Lim
64e9fcad53
Apply SingleSpaceSeparator Checkstyle module
...
This commit also fixes its violations.
Closes gh-31469
2023-10-22 14:09:57 +02:00
Sam Brannen
8a05661707
Polishing
2023-10-22 13:35:49 +02:00
Sam Brannen
f72bf0c177
Revert "Skipping duplicate test classes during test AOT processing"
...
This reverts commit 1281f03b96
.
2023-10-22 13:35:49 +02:00
Sam Brannen
563112c1b7
Ensure integration tests pass in AOT mode
...
See gh-29122
2023-10-22 13:35:49 +02:00
Sam Brannen
37e6fe5b64
Update copyright headers
2023-10-22 11:28:40 +02:00
Brian Clozel
dab7e03c93
Polish
...
See gh-28041
2023-10-20 18:34:52 +02:00
Chen Jianbin
4bf995fa8b
Support "*" mapping in MockMvc filter registration
...
Prior to this commit, configuring a Servlet filter in MockMvc with a
defined mapping would only consider "/*" as a catch-all pattern.
This commit relaxes this rule by also accepting "*" mappings.
Closes gh-28041
2023-10-20 18:32:06 +02:00
Johnny Lim
919faa2ce2
Order modifiers to align with JLS
...
This commit also applies Checkstyle ModifierOrder to enforce it.
See gh-31368
2023-10-17 16:13:56 +02:00
Sam Brannen
1fb2a37957
Apply @DisabledInAotMode for @EJB and SpEL usage
...
Most of the remaining failures are due to @Resource usage.
Current AOT test results for the spring-test module:
Test run finished after 6140 ms
[ 399 containers found ]
[ 64 containers skipped ]
[ 335 containers started ]
[ 0 containers aborted ]
[ 333 containers successful ]
[ 2 containers failed ]
[ 745 tests found ]
[ 116 tests skipped ]
[ 628 tests started ]
[ 1 tests aborted ]
[ 589 tests successful ]
[ 38 tests failed ]
Failing Test Classes:
org.springframework.test.context.groovy.AbsolutePathGroovySpringContextTests
org.springframework.test.context.groovy.GroovySpringContextTests
org.springframework.test.context.groovy.RelativePathGroovySpringContextTests
org.springframework.test.context.jdbc.BeforeTestClassSqlScriptsTests
org.springframework.test.context.junit.jupiter.nested.TestExecutionListenersNestedTests
org.springframework.test.context.junit.jupiter.nested.TestExecutionListenersNestedTests$ConfigOverriddenByDefaultTests
org.springframework.test.context.junit.jupiter.nested.TestExecutionListenersNestedTests$InheritedAndExtendedConfigTests
org.springframework.test.context.junit.jupiter.nested.TestExecutionListenersNestedTests$InheritedAndExtendedConfigTests$DoubleNestedWithOverriddenConfigTests
org.springframework.test.context.junit.jupiter.nested.TestExecutionListenersNestedTests$InheritedAndExtendedConfigTests$DoubleNestedWithOverriddenConfigTests$TripleNestedWithInheritedConfigAndTestInterfaceTests
org.springframework.test.context.junit.jupiter.orm.JpaEntityListenerTests
org.springframework.test.context.junit4.AbsolutePathSpringJUnit4ClassRunnerAppCtxTests
org.springframework.test.context.junit4.ClassPathResourceSpringJUnit4ClassRunnerAppCtxTests
org.springframework.test.context.junit4.ConcreteTransactionalJUnit4SpringContextTests
org.springframework.test.context.junit4.InheritedConfigSpringJUnit4ClassRunnerAppCtxTests
org.springframework.test.context.junit4.MultipleResourcesSpringJUnit4ClassRunnerAppCtxTests
org.springframework.test.context.junit4.ParameterizedDependencyInjectionTests
org.springframework.test.context.junit4.RelativePathSpringJUnit4ClassRunnerAppCtxTests
org.springframework.test.context.junit4.SpringJUnit4ClassRunnerAppCtxTests
org.springframework.test.context.junit4.annotation.AnnotationConfigSpringJUnit4ClassRunnerAppCtxTests
org.springframework.test.context.junit4.spr9799.Spr9799XmlConfigTests
org.springframework.test.context.testng.ConcreteTransactionalTestNGSpringContextTests
See gh-29122
2023-10-16 21:39:17 +02:00
Sam Brannen
88cd0700b2
Filter out TestNG @EJB tests in AOT end-to-end tests
...
See gh-29122
2023-10-16 21:39:17 +02:00
Sam Brannen
9cac5eeeab
Consistently use generated name in embedded databases
...
... to avoid database name conflicts when test classes are executed in
a different order.
See gh-29122
2023-10-16 21:38:47 +02:00
Sam Brannen
0adec6d15a
Apply @DisabledInAotMode to remaining @ContextHierarchy integration tests
...
See gh-29122
2023-10-16 21:35:57 +02:00
Sam Brannen
bb95f2e5ca
Apply @DisabledInAotMode to @ContextHierarchy integration tests
...
This commit applies @DisabledInAotMode to all integration test classes
in the spring-test module that use @ContextHierarchy since that
feature is not supported for AOT optimizations.
Current AOT test results for the spring-test module:
Test run finished after 6888 ms
[ 403 containers found ]
[ 57 containers skipped ]
[ 346 containers started ]
[ 0 containers aborted ]
[ 338 containers successful ]
[ 8 containers failed ]
[ 757 tests found ]
[ 98 tests skipped ]
[ 654 tests started ]
[ 9 tests aborted ]
[ 576 tests successful ]
[ 69 tests failed ]
Failing Test Classes:
org.springframework.test.context.configuration.interfaces.SqlConfigInterfaceTests
org.springframework.test.context.expression.ExpressionUsageTests
org.springframework.test.context.groovy.AbsolutePathGroovySpringContextTests
org.springframework.test.context.groovy.GroovySpringContextTests
org.springframework.test.context.groovy.RelativePathGroovySpringContextTests
org.springframework.test.context.hierarchies.meta.MetaHierarchyLevelTwoTests
org.springframework.test.context.hierarchies.standard.TestHierarchyLevelTwoWithBareContextConfigurationInSubclassTests
org.springframework.test.context.jdbc.CustomScriptSyntaxSqlScriptsTests
org.springframework.test.context.jdbc.GlobalCustomScriptSyntaxSqlScriptsTests
org.springframework.test.context.jdbc.InferredDataSourceTransactionalSqlScriptsTests
org.springframework.test.context.jdbc.InfrastructureProxyTransactionalSqlScriptsTests
org.springframework.test.context.jdbc.MultipleDataSourcesAndTransactionManagersSqlScriptsTests
org.springframework.test.context.jdbc.MultipleDataSourcesAndTransactionManagersTransactionalSqlScriptsTests
org.springframework.test.context.jdbc.NonTransactionalSqlScriptsTests
org.springframework.test.context.jdbc.RepeatableSqlAnnotationSqlScriptsChildTests
org.springframework.test.context.jdbc.RepeatableSqlAnnotationSqlScriptsParentTests
org.springframework.test.context.jdbc.TransactionalAfterTestMethodSqlScriptsTests
org.springframework.test.context.jdbc.TransactionalInlinedStatementsSqlScriptsTests
org.springframework.test.context.junit.jupiter.nested.TestExecutionListenersNestedTests
org.springframework.test.context.junit.jupiter.nested.TestExecutionListenersNestedTests$ConfigOverriddenByDefaultTests
org.springframework.test.context.junit.jupiter.nested.TestExecutionListenersNestedTests$InheritedAndExtendedConfigTests
org.springframework.test.context.junit.jupiter.nested.TestExecutionListenersNestedTests$InheritedAndExtendedConfigTests$DoubleNestedWithOverriddenConfigTests
org.springframework.test.context.junit.jupiter.nested.TestExecutionListenersNestedTests$InheritedAndExtendedConfigTests$DoubleNestedWithOverriddenConfigTests$TripleNestedWithInheritedConfigAndTestInterfaceTests
org.springframework.test.context.junit.jupiter.orm.JpaEntityListenerTests
org.springframework.test.context.junit4.AbsolutePathSpringJUnit4ClassRunnerAppCtxTests
org.springframework.test.context.junit4.ClassPathResourceSpringJUnit4ClassRunnerAppCtxTests
org.springframework.test.context.junit4.ConcreteTransactionalJUnit4SpringContextTests
org.springframework.test.context.junit4.InheritedConfigSpringJUnit4ClassRunnerAppCtxTests
org.springframework.test.context.junit4.MultipleResourcesSpringJUnit4ClassRunnerAppCtxTests
org.springframework.test.context.junit4.ParameterizedDependencyInjectionTests
org.springframework.test.context.junit4.RelativePathSpringJUnit4ClassRunnerAppCtxTests
org.springframework.test.context.junit4.SpringJUnit4ClassRunnerAppCtxTests
org.springframework.test.context.junit4.annotation.AnnotationConfigSpringJUnit4ClassRunnerAppCtxTests
org.springframework.test.context.junit4.rules.TransactionalSqlScriptsSpringRuleTests
org.springframework.test.context.junit4.spr9799.Spr9799XmlConfigTests
org.springframework.test.context.testng.ConcreteTransactionalTestNGSpringContextTests
org.springframework.test.context.testng.transaction.ejb.CommitForRequiredEjbTxDaoTestNGTests
org.springframework.test.context.testng.transaction.ejb.CommitForRequiresNewEjbTxDaoTestNGTests
org.springframework.test.context.testng.transaction.ejb.RollbackForRequiredEjbTxDaoTestNGTests
org.springframework.test.context.testng.transaction.ejb.RollbackForRequiresNewEjbTxDaoTestNGTests
org.springframework.test.context.transaction.ejb.CommitForRequiredEjbTxDaoTests
org.springframework.test.context.transaction.ejb.CommitForRequiresNewEjbTxDaoTests
org.springframework.test.context.transaction.ejb.RollbackForRequiredEjbTxDaoTests
org.springframework.test.context.transaction.ejb.RollbackForRequiresNewEjbTxDaoTests
See gh-29122
2023-10-16 17:11:00 +02:00
Sam Brannen
44931dca44
Include all failing test classes in AOT end-to-end test report
...
Prior to this commit, AotIntegrationTests only printed "failing test
classes" for tests that failed at the class level.
This commit updates the reporting logic to report test classes for
failing test methods as well.
Current results for the spring-test module:
Test run finished after 6531 ms
[ 403 containers found ]
[ 27 containers skipped ]
[ 376 containers started ]
[ 0 containers aborted ]
[ 366 containers successful ]
[ 10 containers failed ]
[ 757 tests found ]
[ 61 tests skipped ]
[ 689 tests started ]
[ 9 tests aborted ]
[ 585 tests successful ]
[ 95 tests failed ]
Failing Test Classes:
org.springframework.test.context.configuration.interfaces.ContextHierarchyInterfaceTests
org.springframework.test.context.configuration.interfaces.SqlConfigInterfaceTests
org.springframework.test.context.expression.ExpressionUsageTests
org.springframework.test.context.groovy.AbsolutePathGroovySpringContextTests
org.springframework.test.context.groovy.GroovySpringContextTests
org.springframework.test.context.groovy.RelativePathGroovySpringContextTests
org.springframework.test.context.hierarchies.meta.MetaHierarchyLevelTwoTests
org.springframework.test.context.hierarchies.standard.ClassHierarchyWithMergedConfigLevelOneTests
org.springframework.test.context.hierarchies.standard.ClassHierarchyWithMergedConfigLevelTwoTests
org.springframework.test.context.hierarchies.standard.ClassHierarchyWithOverriddenConfigLevelTwoTests
org.springframework.test.context.hierarchies.standard.DirtiesContextWithContextHierarchyTests
org.springframework.test.context.hierarchies.standard.SingleTestClassWithTwoLevelContextHierarchyAndMixedConfigTypesTests
org.springframework.test.context.hierarchies.standard.SingleTestClassWithTwoLevelContextHierarchyTests
org.springframework.test.context.hierarchies.standard.TestHierarchyLevelTwoWithBareContextConfigurationInSubclassTests
org.springframework.test.context.hierarchies.standard.TestHierarchyLevelTwoWithBareContextConfigurationInSuperclassTests
org.springframework.test.context.hierarchies.standard.TestHierarchyLevelTwoWithSingleLevelContextHierarchyAndMixedConfigTypesTests
org.springframework.test.context.hierarchies.standard.TestHierarchyLevelTwoWithSingleLevelContextHierarchyTests
org.springframework.test.context.hierarchies.web.ControllerIntegrationTests
org.springframework.test.context.hierarchies.web.DispatcherWacRootWacEarTests
org.springframework.test.context.hierarchies.web.RootWacEarTests
org.springframework.test.context.jdbc.CustomScriptSyntaxSqlScriptsTests
org.springframework.test.context.jdbc.GlobalCustomScriptSyntaxSqlScriptsTests
org.springframework.test.context.jdbc.InferredDataSourceTransactionalSqlScriptsTests
org.springframework.test.context.jdbc.InfrastructureProxyTransactionalSqlScriptsTests
org.springframework.test.context.jdbc.MultipleDataSourcesAndTransactionManagersSqlScriptsTests
org.springframework.test.context.jdbc.MultipleDataSourcesAndTransactionManagersTransactionalSqlScriptsTests
org.springframework.test.context.jdbc.NonTransactionalSqlScriptsTests
org.springframework.test.context.jdbc.RepeatableSqlAnnotationSqlScriptsChildTests
org.springframework.test.context.jdbc.RepeatableSqlAnnotationSqlScriptsParentTests
org.springframework.test.context.jdbc.TransactionalAfterTestMethodSqlScriptsTests
org.springframework.test.context.jdbc.TransactionalInlinedStatementsSqlScriptsTests
org.springframework.test.context.junit.jupiter.nested.ContextHierarchyNestedTests$NestedTestCaseWithInheritedConfigTests
org.springframework.test.context.junit.jupiter.nested.ContextHierarchyNestedTests$NestedTestCaseWithInheritedConfigTests$DoubleNestedTestCaseWithOverriddenConfigTests
org.springframework.test.context.junit.jupiter.nested.ContextHierarchyNestedTests$NestedTestCaseWithInheritedConfigTests$DoubleNestedTestCaseWithOverriddenConfigTests$TripleNestedWithInheritedConfigAndTestInterfaceTests
org.springframework.test.context.junit.jupiter.nested.TestExecutionListenersNestedTests
org.springframework.test.context.junit.jupiter.nested.TestExecutionListenersNestedTests$ConfigOverriddenByDefaultTests
org.springframework.test.context.junit.jupiter.nested.TestExecutionListenersNestedTests$InheritedAndExtendedConfigTests
org.springframework.test.context.junit.jupiter.nested.TestExecutionListenersNestedTests$InheritedAndExtendedConfigTests$DoubleNestedWithOverriddenConfigTests
org.springframework.test.context.junit.jupiter.nested.TestExecutionListenersNestedTests$InheritedAndExtendedConfigTests$DoubleNestedWithOverriddenConfigTests$TripleNestedWithInheritedConfigAndTestInterfaceTests
org.springframework.test.context.junit.jupiter.orm.JpaEntityListenerTests
org.springframework.test.context.junit4.AbsolutePathSpringJUnit4ClassRunnerAppCtxTests
org.springframework.test.context.junit4.ClassPathResourceSpringJUnit4ClassRunnerAppCtxTests
org.springframework.test.context.junit4.ConcreteTransactionalJUnit4SpringContextTests
org.springframework.test.context.junit4.InheritedConfigSpringJUnit4ClassRunnerAppCtxTests
org.springframework.test.context.junit4.MultipleResourcesSpringJUnit4ClassRunnerAppCtxTests
org.springframework.test.context.junit4.ParameterizedDependencyInjectionTests
org.springframework.test.context.junit4.RelativePathSpringJUnit4ClassRunnerAppCtxTests
org.springframework.test.context.junit4.SpringJUnit4ClassRunnerAppCtxTests
org.springframework.test.context.junit4.annotation.AnnotationConfigSpringJUnit4ClassRunnerAppCtxTests
org.springframework.test.context.junit4.rules.TransactionalSqlScriptsSpringRuleTests
org.springframework.test.context.junit4.spr9799.Spr9799XmlConfigTests
org.springframework.test.context.testng.ConcreteTransactionalTestNGSpringContextTests
org.springframework.test.context.testng.transaction.ejb.CommitForRequiredEjbTxDaoTestNGTests
org.springframework.test.context.testng.transaction.ejb.CommitForRequiresNewEjbTxDaoTestNGTests
org.springframework.test.context.testng.transaction.ejb.RollbackForRequiredEjbTxDaoTestNGTests
org.springframework.test.context.testng.transaction.ejb.RollbackForRequiresNewEjbTxDaoTestNGTests
org.springframework.test.context.transaction.ejb.CommitForRequiredEjbTxDaoTests
org.springframework.test.context.transaction.ejb.CommitForRequiresNewEjbTxDaoTests
org.springframework.test.context.transaction.ejb.RollbackForRequiredEjbTxDaoTests
org.springframework.test.context.transaction.ejb.RollbackForRequiresNewEjbTxDaoTests
org.springframework.test.web.servlet.samples.client.context.JavaConfigTests
org.springframework.test.web.servlet.samples.client.context.WebAppResourceTests
org.springframework.test.web.servlet.samples.client.context.XmlConfigTests
org.springframework.test.web.servlet.samples.context.JavaConfigTests
org.springframework.test.web.servlet.samples.context.WebAppResourceTests
org.springframework.test.web.servlet.samples.context.XmlConfigTests
See gh-29122
2023-10-16 16:56:20 +02:00
Sam Brannen
32b4f55d92
Update copyright headers
2023-10-16 16:19:55 +02:00
Sam Brannen
119a9ffc3e
Rename test class to NestedTests for AOT integration testing
...
Prior to this commit, the NestedTestCase resulted in errors during our
AOT end-to-end integration tests since it did not comply to our "*Tests"
naming convention.
See gh-29122
2023-10-16 16:19:55 +02:00
Sam Brannen
66e3a7a25c
Apply @DisabledInAotMode to appropriate test classes
...
This commit applies @DisabledInAotMode to test classes in the
spring-test module that will never be able to be processed for AOT
optimizations.
Test classes that fail for reasons that can potentially be addressed in
a future version of the framework have not been annotated with
@DisabledInAotMode.
See gh-29122
2023-10-16 16:19:55 +02:00
Sam Brannen
991afe0939
Fix formatting for @DisabledInAotMode error messages
...
See gh-30834
2023-10-16 16:19:55 +02:00
Sam Brannen
1281f03b96
Skipping duplicate test classes during test AOT processing
...
Although it should not happen in theory, sometimes a test class is
discovered more than once via the TestClassScanner in our integration
tests. When it does happen in our tests, the two Class objects have the
same fully-qualified class name but represent different classes which
leads to failures due to incorrect associations between test class
names and their MergedContextConfiguration.
To address this, this commit modifies TestContextAotGenerator so that
it skips duplicate test class names.
2023-10-16 16:19:55 +02:00
Sam Brannen
28939e4754
Find @DisabledInAotMode on enclosing classes for @Nested tests
...
See gh-30834
2023-10-16 16:19:55 +02:00
Sam Brannen
fc81cc5cda
Polishing
2023-10-16 15:56:12 +02:00
Sam Brannen
41098d52d6
Print test summary for AotIntegrationTests.endToEndTestsForEntireSpringTestModule()
...
Current results for the spring-test module:
Test run finished after 6785 ms
[ 403 containers found ]
[ 6 containers skipped ]
[ 397 containers started ]
[ 0 containers aborted ]
[ 381 containers successful ]
[ 16 containers failed ]
[ 757 tests found ]
[ 41 tests skipped ]
[ 703 tests started ]
[ 9 tests aborted ]
[ 599 tests successful ]
[ 95 tests failed ]
Failing Test Classes:
org.springframework.test.context.testng.transaction.ejb.RollbackForRequiresNewEjbTxDaoTestNGTests
org.springframework.test.context.testng.transaction.ejb.CommitForRequiredEjbTxDaoTestNGTests
org.springframework.test.context.testng.transaction.ejb.RollbackForRequiredEjbTxDaoTestNGTests
org.springframework.test.context.testng.transaction.ejb.CommitForRequiresNewEjbTxDaoTestNGTests
org.springframework.test.context.env.ExplicitPropertiesFileTestPropertySourceTests$ClasspathTests$PlaceholderAndClasspathPrefixTests
org.springframework.test.context.env.ExplicitPropertiesFileTestPropertySourceTests$ClasspathTests$PlaceholderTests
org.springframework.test.context.env.ExplicitPropertiesFileTestPropertySourceTests$FileSystemTests$CustomPlaceholderTests
org.springframework.test.context.env.ExplicitPropertiesFileTestPropertySourceTests$FileSystemTests$PlaceholdersFollowedByRelativePathsTests
org.springframework.test.context.env.ExplicitPropertiesFileTestPropertySourceTests$FileSystemTests$UserDirAndCustomPlaceholdersTests
org.springframework.test.web.servlet.samples.client.context.WebAppResourceTests
org.springframework.test.web.servlet.samples.client.context.XmlConfigTests
org.springframework.test.web.servlet.samples.context.WebAppResourceTests
org.springframework.test.web.servlet.samples.context.XmlConfigTests
org.springframework.test.context.junit4.ParameterizedDependencyInjectionTests
org.springframework.test.context.junit4.nested.NestedTestsWithSpringRulesTests$NestedTestCase
org.springframework.test.context.junit4.spr9799.Spr9799XmlConfigTests
See gh-29122
2023-10-16 13:13:36 +02:00
Sam Brannen
3ad79e919b
Modify tests so they pass in AOT mode
...
... when run via AotIntegrationTests.endToEndTestsForEntireSpringTestModule().
2023-10-16 13:00:07 +02:00
Sam Brannen
87127ab684
Polishing
2023-10-16 13:00:07 +02:00
Sam Brannen
39a282e463
Introduce @DisabledInAotMode in the TestContext framework
...
This commit introduces @DisabledInAotMode in the TestContext
framework to support the following use cases.
- Disabling AOT build-time processing of a test ApplicationContext --
applicable to any testing framework (JUnit 4, JUnit Jupiter, etc.).
- Disabling an entire test class or a single test method at run time
when the test suite is run with AOT optimizations enabled -- only
applicable to JUnit Jupiter based tests.
Closes gh-30834
2023-10-15 19:22:26 +02:00
Sam Brannen
39400901cd
Set failOnError flag to false endToEndTestsForEntireSpringTestModule()
2023-10-14 13:09:11 +02:00
Sam Brannen
8b335e793c
Revise endToEndTestsForEntireSpringTestModule()
2023-10-14 12:41:01 +02:00
rstoyanchev
776e28a6c4
MockMvc supports filter initParams and DispatcherType's
...
Closes gh-27717, gh-31362
2023-10-11 17:09:18 +01:00
Sam Brannen
d1b43386b1
Test status quo for @Sql in @Nested test class w/ class-level execution phases
2023-10-08 18:16:31 +02:00
Sam Brannen
b98b999997
Test status quo for inherited @Sql in @Nested test class
2023-10-08 18:09:13 +02:00
Sam Brannen
913dc86e18
Polishing
2023-10-05 14:13:01 +02:00
Sam Brannen
95139fca76
Polishing
2023-10-04 17:39:14 +02:00
Sam Brannen
0afcb4dfed
Revise "Introduce class-level execution phases for @Sql"
...
This commit revises the previous commit as follows.
- Remove hasTestMethod() from TestContext and instead introduce a new
variant of createDelegatingTransactionAttribute() in
TestContextTransactionUtils which accepts a boolean
`includeMethodName` flag.
- Add missing @TestMethodOrder declaration to
AfterTestClassSqlScriptsTests to ensure that the test methods are
always executed in the required order.
- Polish Javadoc and add missing @since tags.
Closes gh-27285
2023-10-04 17:39:14 +02:00
Andreas Ahlenstorf
5aa2d0515e
Introduce class-level execution phases for @Sql
...
This commit introduces BEFORE_TEST_CLASS and AFTER_TEST_CLASS execution
phases for @Sql.
See gh-27285
2023-10-04 16:39:21 +02:00
rstoyanchev
2e2a62a23c
Polishing
2023-09-26 11:34:40 +01:00
rstoyanchev
af7fe013b6
MockMvcHttpConnector supports RequestPostProcessor's
...
Closes gh-31298
2023-09-26 11:34:40 +01:00
Sam Brannen
7aae97bcd4
Revise NO_VIOLATIONS_DETECTED in SpringExtension to clarify intent
...
See gh-31305
See gh-30962
See gh-30456
2023-09-25 16:48:58 +02:00
ali dandach
1d12c74042
Use Objects.equals() for null-safe string comparison
...
See gh-31305
2023-09-25 08:28:33 +02:00
Sam Brannen
09b1e5edf6
Extract instantiateComponents() method in AbstractTestContextBootstrapper
2023-09-14 14:52:35 +02:00
Sam Brannen
a220c545fc
Support declarative ContextCustomizerFactory registration in the TCF
...
Prior to this commit, it was only possible to register a
ContextCustomizerFactory in the TestContext framework (TCF) via the
SpringFactoriesLoader mechanism.
This commit introduces support for declarative registration of a
ContextCustomizerFactory local to a test class via a new
@ContextCustomizerFactories annotation.
Closes gh-26148
2023-09-13 19:59:50 +02:00
Sam Brannen
5c7bf0c2fe
Add tests for MethodInvoker behavior in the TestContext framework
...
See gh-31199
2023-09-11 13:15:21 +02:00
Sam Brannen
4aeeacb4c2
Simplify and rename TestContextManager[ListenerExecutionOrder]Tests
2023-09-11 13:11:16 +02:00
Sam Brannen
ed83461021
Support parameter injection in @[Before|After]Transaction methods
...
Prior to this commit, @BeforeTransaction and @AfterTransaction
methods could not accept any arguments. This is acceptable with testing
frameworks such as JUnit 4 and TestNG that do not provide support for
parameter injection. However, users of JUnit Jupiter have become
accustomed to being able to accept arguments in lifecycle methods
annotated with JUnit's @BeforeEach, @AfterEach, etc.
As a follow up to the previous commit (see gh-31199), this commit
introduces first-class support for parameter injection in
@BeforeTransaction and @AfterTransaction methods, as demonstrated in
the following example.
@BeforeTransaction
void verifyInitialDatabaseState(@Autowired DataSource dataSource) {
// Use the DataSource to verify the initial DB state
}
Closes gh-30736
2023-09-10 20:15:26 +02:00
Sam Brannen
41904d46ad
Introduce MethodInvoker API for TestExecutionListeners
...
In order to be able to support parameter injection in
@BeforeTransaction and @AfterTransaction methods (see gh-30736), this
commit introduces a MethodInvoker API for TestExecutionListeners as a
generic mechanism for delegating to the underlying testing framework to
invoke methods.
The default implementation simply invokes the method without arguments,
which allows TestExecutionListeners using this mechanism to operate
correctly when the underlying testing framework is JUnit 4, TestNG, etc.
A JUnit Jupiter specific implementation is registered in the
SpringExtension which delegates to the
ExtensionContext.getExecutableInvoker() mechanism introduced in JUnit
Jupiter 5.9. This allows a TestExecutionListener to transparently
benefit from registered ParameterResolvers in JUnit Jupiter (including
the SpringExtension) when invoking user methods, effectively providing
support for parameter injection for arbitrary methods.
Closes gh-31199
2023-09-10 20:15:12 +02:00
Sam Brannen
436c7136e9
Polish TransactionAssert
2023-09-10 14:37:28 +02:00
Sam Brannen
0f36c5fd6a
Polishing
2023-09-08 20:12:44 +02:00
Sam Brannen
dfea3d05aa
Revise support for JSR-330 and Jakarta @Inject for autowiring test constructors
...
Closes gh-29851
2023-09-08 19:29:28 +02:00
Florian Lehmann
8dd857a84d
Support @Inject from JSR-330 & Jakarta for autowiring test constructors
...
See gh-29851
2023-09-08 19:26:39 +02:00
Sam Brannen
0a7166234d
Polishing
2023-09-06 11:37:50 +02:00
Sam Brannen
210b42b7d8
Polishing
2023-09-04 12:42:16 +02:00
Sam Brannen
e8fd29091c
Register hints for @TestPropertySource factory
...
This commit updates MergedContextConfigurationRuntimeHints so that it
registers hints for a custom PropertySourceFactory.
Closes gh-31160
2023-09-03 16:59:58 +02:00
Sam Brannen
7882d265c6
Polishing
2023-09-03 16:59:58 +02:00
Juergen Hoeller
759e3d4aa6
Adapt to PreparedStatementCreator for JdbcClient update operation
...
See gh-31122
2023-09-03 02:32:01 +02:00
Sam Brannen
e0c3b1ae1d
Merge branch '6.0.x'
2023-08-26 15:28:50 +02:00
Sam Brannen
7598bca799
Revise Checkstyle rules to prohibit use of assertions other than AssertJ
...
Closes gh-31116
2023-08-26 15:28:25 +02:00
Sam Brannen
f9588de247
Reinstate FailingBeforeAndAfterMethodsTestNGTests
...
The tests were ignored due to "Fails against TestNG 6.11"; however,
these tests pass against the current version of TestNG that we build
against (7.8.0).
2023-08-26 15:22:38 +02:00
Sam Brannen
583d92e69a
Merge branch '6.0.x'
2023-08-21 15:19:27 +02:00
Sam Brannen
9911d91f08
Add implementation note
...
See gh-31083
2023-08-21 15:17:57 +02:00
Sam Brannen
758dddce3b
Merge branch '6.0.x'
2023-08-21 14:18:38 +02:00
Sam Brannen
620a87bcbc
Polishing
2023-08-21 14:17:05 +02:00
Yanming Zhou
368036cab4
Allow overriding dynamic property from enclosing class in nested test class
...
Prior to this commit, a dynamic property registered via a
@DynamicPropertySource method in a @Nested test class was not able to
override a property registered via a @DynamicPropertySource method in
the enclosing class.
See gh-26091
Closes gh-31083
2023-08-21 14:03:24 +02:00
Sam Brannen
baf367831f
Add @AliasFor tip to Javadoc for @TestPropertySource
2023-08-19 15:40:31 +02:00
Sam Brannen
8f71bea553
Avoid unnecessary synchronization in SequencedProperties
2023-08-19 15:32:37 +02:00
Sam Brannen
285c92bb03
Store reversedMetaDistance Comparator in static field
2023-08-18 16:33:51 +02:00
Sam Brannen
ca118ca4a0
Introduce overloaded methods in JdbcTestUtils that accept JdbcClient
...
Closes gh-31066
2023-08-18 12:20:57 +02:00
Sam Brannen
77067d0e6b
Revise JdbcTestUtils method signatures to accept JdbcOperations
...
Closes gh-31065
2023-08-18 12:00:28 +02:00
Sam Brannen
279e6eb423
Document best practices for inlined properties in @TestPropertySource
2023-08-16 17:27:18 +02:00
Sam Brannen
24dd484471
Polish internal SequencedProperties implementation
2023-08-16 14:11:02 +02:00
Sam Brannen
b43972bb54
Preserve property ordering for text blocks in @TestPropertySource
...
See gh-31053
2023-08-16 13:48:25 +02:00
Sam Brannen
1f544f113a
Support resource patterns in @TestPropertySource locations
...
Inspired by the recently added support for resource patterns in
@PropertySource locations, this commit adds the same support for
resource locations in @TestPropertySource.
For example, assuming the `config` folder in the classpath contains
only 3 files matching the pattern `file?.properties`,
... the following:
@TestPropertySource("classpath:/config/file1.properties")
@TestPropertySource("classpath:/config/file2.properties")
@TestPropertySource("classpath:/config/file3.properties")
... or:
@TestPropertySource({
"classpath:/config/file1.properties",
"classpath:/config/file2.properties",
"classpath:/config/file3.properties"
})
... can now be replaced by:
@TestPropertySource("classpath*:/config/file?.properties")
See gh-21325
Closes gh-31055
2023-08-16 12:34:20 +02:00
Sam Brannen
3a38bb48b5
Polishing
2023-08-16 12:17:58 +02:00
Sam Brannen
02d3269dbb
Polishing
2023-08-16 11:44:55 +02:00
Sam Brannen
a2f52db452
Support text blocks for inlined properties in @TestPropertySource
...
Prior to this commit, inlined properties could only be supplied as an
array of Strings as follows.
@TestPropertySource(properties = {
"key1 = value1",
"key2 = value2"
})
Although a user could supply a text block, it was previously rejected
due to a "single key-value pair per string" check in
TestPropertySourceUtils.convertInlinedPropertiesToMap(String...).
This commit removes that restriction and allows the above example to be
refactored to use a text block as follows.
@TestPropertySource(properties = """
key1 = value1
key2 = value2
"""
)
Closes gh-31053
2023-08-15 18:10:01 +02:00
Sam Brannen
8c2a39b5af
Simplify Javadoc
2023-08-15 18:10:01 +02:00
Sam Brannen
837e8960c2
Make addPropertySourcesToEnvironment() public
...
This commit makes the recently introduced
addPropertySourcesToEnvironment(ConfigurableEnvironment, ResourceLoader,
List<PropertySourceDescriptor>) method in TestPropertySourceUtils public
so that it can be used by third parties (for example, Spring Boot).
Closes gh-30981
2023-08-08 11:47:15 +03:00
Sam Brannen
faf3c7831f
Add support for property file encoding in @TestPropertySource
...
Prior to this commit, property files configured (or inferred) via
@TestPropertySource were read using the default encoding of the JVM.
This commit introduces an `encoding` attribute in @TestPropertySource
which allows developers to specify an explicit encoding for test
property files.
Closes gh-30982
2023-08-05 13:47:46 +03:00
Sam Brannen
04cce0bafd
Support custom properties file formats in @TestPropertySource
...
Spring Framework 4.3 introduced the `PropertySourceFactory` SPI for use
with `@PropertySource` on `@Configuration` classes; however, prior to
this commit there was no mechanism to support custom properties file
formats in `@TestPropertySource` for integration tests.
This commit introduces support for configuring a custom
`PropertySourceFactory` via a new `factory` attribute in
`@TestPropertySource` in order to support custom file formats such as
JSON, YAML, etc.
For example, if you create a YamlPropertySourceFactory, you can use it
in integration tests as follows.
@SpringJUnitConfig
@TestPropertySource(locations = "/test.yaml", factory = YamlPropertySourceFactory.class)
class MyTestClass { /* ... /* }
If a custom factory is not specified, traditional `*.properties` and
`*.xml` based `java.util.Properties` file formats are supported, which
was the existing behavior.
Closes gh-30981
2023-08-04 14:57:22 +03:00
Juergen Hoeller
4e863c5a75
Merge branch '6.0.x'
2023-08-04 02:40:17 +02:00
Juergen Hoeller
18966d048c
Consistent equals/hashCode style (and related polishing)
2023-08-04 02:39:31 +02:00
Sam Brannen
dcec61ab7a
Remove obsolete dependency on picocli
...
The dependency on picocli was removed from the code in commit 019785a72e
.
This commit removes the dependency management from the build.
See gh-28825
2023-08-02 09:54:32 +03:00
Juergen Hoeller
d250a5155a
Consistent dependency declarations
2023-08-02 00:56:50 +02:00
Juergen Hoeller
ae279eaced
Polishing
2023-08-01 23:52:48 +02:00
Sam Brannen
3e5aa8d734
Fail on error by default during test AOT processing
...
Prior to this commit, if an error was encountered during build-time AOT
processing, the error was logged at WARN/DEBUG level, and processing
continued.
With this commit, test AOT processing now fails on error by default. In
addition, the `failOnError` mode can be disabled by setting the
`spring.test.aot.processing.failOnError` Spring/System property to
`false`.
Closes gh-30977
2023-08-03 10:59:46 +03:00
Sam Brannen
51aaaae94e
Merge branch '6.0.x'
...
# Conflicts:
# framework-platform/framework-platform.gradle
2023-08-02 09:56:47 +03:00
Juergen Hoeller
3b1af692cc
Merge branch '6.0.x'
...
# Conflicts:
# spring-beans/spring-beans.gradle
# spring-context/spring-context.gradle
# spring-orm/spring-orm.gradle
# spring-test/spring-test.gradle
# spring-web/spring-web.gradle
# spring-webflux/spring-webflux.gradle
2023-08-02 01:04:31 +02:00
Juergen Hoeller
b9ae996dfc
Merge branch '6.0.x'
...
# Conflicts:
# spring-context/spring-context.gradle
# spring-context/src/main/java/org/springframework/context/event/SimpleApplicationEventMulticaster.java
# spring-context/src/test/java/org/springframework/scheduling/annotation/EnableSchedulingTests.java
# spring-orm/src/main/java/org/springframework/orm/hibernate5/SpringBeanContainer.java
# spring-test/spring-test.gradle
# spring-webmvc/spring-webmvc.gradle
2023-08-02 00:16:55 +02:00
Juergen Hoeller
2d50b758c4
Deprecate applyBeanPostProcessorsBefore/AfterInitialization
...
Closes gh-30974
2023-08-01 23:28:06 +02:00
Sam Brannen
f9f7a7cd78
Polish contribution
...
See gh-30971
2023-08-01 16:19:26 +03:00
Juergen Hoeller
2ac55659c8
Merge branch '6.0.x'
2023-07-19 01:26:05 +02:00
Juergen Hoeller
c64a322e19
Polishing
2023-07-19 01:25:20 +02:00