Есть ли способ внедрить ITestContext из TestNg в модуль Guice? - PullRequest
0 голосов
/ 15 мая 2018

Допустим, у меня есть некоторый модуль / провайдер guice, который должен создавать привязки на основе параметров, полученных из файла комплекта TestNg.например,

<test name="Test">
    <parameter name="profile" value="chrome"></parameter>
    <classes>
        <class name="com.apc.ui.tests.TestClass">
        </class>
    </classes>
</test>

То, чего я хотел добиться, - это возможность получить доступ к значению параметра с помощью вышеупомянутого модуля.например,

public class MyModule extends AbstractModule {
    @Inject
    ITestContext context;

    @Override
    protected void configure() {
        ...
    }
}

Итак, мне интересно, возможно ли это.Любые альтернативы также приветствуются.Спасибо.

1 Ответ

0 голосов
/ 15 мая 2018

В конце концов, удалось найти решение в источниках testNg.Существует возможность установить так называемый родительский модуль в файле набора.

<suite name="Suite1" verbose="1" parallel="false"
    parent-module="org.my.tests.ParentModule">
...

модуль может получить ITestContext в качестве параметра конструктора, что означает, что его можно затем внедрить в другие классы:

public class ParentModule extends AbstractModule {

  private ITestContext context;

  public GuiceParentModule(ITestContext context) {
    this.context = context;
  }

  @Override
  protected void configure() {
    bind(ITestContext.class).toInstance(context);
  }
...
...