0
我正在編寫webDriver端到端測試框架,使用junit 4和guice進行注入。將junit testname傳遞給guice注入的對象
我想測試名稱傳遞到我的driverFactory,這樣我可以用它來Saucelabs正確命名測試:在我AbstractTest
(使用目前的所有測試)我使用
@Rule
public TestName name = new TestName();
和
@Before
public void before() {
System.setProperty("testName", name.getMethodName());
// This is unfortunately, the only way I have managed to make the test name available to the configuration factory
Guice.createInjector(new TestModule()).injectMembers(this);
然後我就可以使用
testConfig.setTestName(System.getProperty("testName"));
我TestModule構造函數中檢索此值
我嘗試了很多其他的方法,使我的testName可用於TestModule,我可以使它可用於其他類。這一切都基於同樣的原因:
我可以在這裏創建的測試模塊中設置一個字段,但是第一次注入TestModule時,它是第二個新實例,現在是第二個實例沒有正確的字段值注入。
我寧願另一種策略,而不是設置系統屬性,但我絕望地失敗了。任何人都可以建議更好的?
(如果其有關我正在我的測試並行地從搖籃)
有沒有你不能把它傳遞到您的TestModule構造的原因嗎? –
我確實嘗試過,但我無法使它工作。我想在嘗試注入新的TestModule時會導致循環引用問題 – AlexanderTheTester
但是每個測試都應該有它自己的'TestModule',對吧? 「注入新的TestModule」意味着什麼? –