我正在尝试在子类中使用 spring 通过 @Value 读取的一些属性。这些属性在父类中被正确读取,但在子类中最终为 null。我使用的是注释配置而不是 xml 配置。
例如,我试图在扩展 WebTemplate 的 TestListeners 中使用来自 WebTemplate 的属性 reportType:
@ContextConfiguration(classes = AppConfig.class)
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)
public class WebTemplate extends AbstractTestNGSpringContextTests {
@Autowired
protected SeleniumDriver driver;
@Value("${environment.url}")
protected String environmentUrl;
@Value("${report.type}")
protected String reportType;
@Value("${auto.open.report}")
protected String autoOpenReport;}
这里的属性最终为空。如果我在 WebTemplate 中使用它们,一切都很好并且可以工作。
public class TestListener extends WebTemplate implements ITestListener {
@Override
public void onTestStart(ITestResult result) {
System.out.println(reportType);
System.out.println(autoOpenReport);
我还考虑过 Webtemplate 对象在测试周期的某个时候被破坏,并试图在每次测试开始时将它们存储在子类中,从 super 调用它们。这也没有用:
public class TestListener extends WebTemplate implements ITestListener {
private String reportType;
private String autoOpenReport;
@Override
public void onTestStart(ITestResult result) {
this.reportType = super.reportType;
this.autoOpenReport = super.autoOpenReport;
有什么建议吗?
米琪卡哇伊
慕斯王
相关分类