Я пытался сделать согласно этому вопросу.
Есть ли способ ввести ITestContext из TestNg в модуль guice?
Учтите это:
public class TestParentModule extends AbstractModule {
private ITestContext iTestContext;
public TestParentModule(ITestContext iTestContext){
this.iTestContext = iTestContext;
}
@Override
protected void configure() {
System.out.println("Parent module called");
bind(ITestContext.class).toInstance(iTestContext);
}
}
public class TestModule extends AbstractModule {
@Inject
private ITestContext iTestContext;
@Override
protected void configure() {
System.out.println("configure is called :: " + iTestContext.getName());
}
}
Люкс
<suite name="My suite" parent-module="com.mypackage.guice.TestParentModule">
<test name="Test1" >
<classes>
<class name="com.mypackage.SampleTest"/>
</classes>
</test>
<test name="Test2" >
<classes>
<class name="com.mypackage.SampleTest"/>
</classes>
</test>
<test name="Test3" >
<classes>
<class name="com.mypackage.SampleTest"/>
</classes>
</test>
</suite>
Тестовый класс помечен
@Guice(modules = TestModule.class)
Выход ::
Parent module called
configure is called :: Test1
configure is called :: Test1
configure is called :: Test1
Интересно, он каждый раз вводит один и тот же экземпляр ITestContext? Разве это не ошибка в TestNG?
Я надеялся, что увижу
Parent module called
configure is called :: Test1
configure is called :: Test2
configure is called :: Test3
Как я могу получить доступ к ITestContext в GuiceModule?