У меня есть некоторые проблемы с внедрением зависимостей (Spring autowiring) и maven-surefire.
Следующий тест работает без проблем при запуске в Eclipse с TestNG:
Сервисный объект внедряется, затем вызывается @BeforeClass
-метод.
@TransactionConfiguration(defaultRollback=false)
@ContextConfiguration(locations={"/testContext.xml"})
public class MyServiceTest extends AbstractTransactionalTestNGSpringContextTests {
@Autowired
private MyService service;
@BeforeTest
public void setup() {
System.out.println("*********************"+service);
Assert.assertNotNull(service);
}
Однако, когда я запускаю тот же тестовый сценарий с maven-surefire, вызывается первый метод setup (), что приводит к сбою теста:
[INFO] --- maven-surefire-plugin:2.7.2:test (default-test) @ myserver ---
[INFO] Surefire report directory: D:\...
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running TestSuite
**************************null
2011-03-04 11:08:57,462 DEBUG ionTestExecutionListener.prepareTestInstance - Performing dependency injection for test context [[TestContext@1fd6bea...
2011-03-04 11:08:57,462 DEBUG ractGenericContextLoader.loadContext - Loading ApplicationContext for locations [classpath:/testContext.xml].
Как я могу решить эту проблему?
Если я заменим @BeforeClass
на @Test
, он будет работать в maven, как в плагине Eclipse TestNG.
Maven-безошибочный-плагин: 2.7.2
Eclipse: Helios Service Release 1
jdk1.6.0_14
TestNG: 5.14.10