Maven-使用从src / test到src / main的静态变量

时间:2018-06-26 20:03:44

标签: maven selenium

TestNG创建了一个使用pagefactory的简单登录和注销硒测试,并且在将其作为“ TestNG”测试运行时运行良好。我正在将其迁移到Maven,并遇到了在不同类之间访问变量的问题。

src/main/java
---package:myapp.pages
         Homepage.java
         LoginPage.java
---package:utilities
         CommonUtils.java
         DatabaseUtils.java

src/test/java
---package:myapp.test
         LoginTest.java (has static variable about test name)
           public static String sTestName = "Regression test - Login/Logout"

在LoginPage.java中使用上述变量时,出现编译错误。我将其用作

public static String sName=myapp.test.LoginTest.sTestName;

编译错误为: [10,22]包myapp.test不存在

如何处理此错误?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

src/main是生产代码所在的地方,src/test是您的测试代码所在的地方。生产代码将被运送到生产环境,而测试代码则不会。因此,生产代码不应依赖于测试代码。 Maven为您实施了此操作(您的IDE也会相应地执行此操作)。绝对不会出现您的生产代码需要依赖于测试代码才知道的事情的情况。现在,有 个有效的场景,在这些场景中,您希望测试期间的行为与生产代码中的行为有所不同,并且有很多策略可以做到这一点。例如,您可以使用属性文件(并在测试期间在src/test/resources中使用相同名称的文件“神奇地”覆盖生产版本),或使用set ters在测试期间覆盖内容。