首先让我开始说我认为自定义注释可用于此,但我不完全确定。
我想有一组注释,我可以用它来装饰一些测试类。注释允许我为不同的环境配置测试。例如:
public class Atest extends BaseTest{
private String env;
@Login(environment=env)
public void testLogin(){
//do something
}
@SignUp(environment=env)
public void testSignUp(){
//do something
}
}
这里的想法是登录注释将用于查找要在testLogin方法中使用的用户名和密码,以测试特定环境的登录过程。
所以我的问题是这可能与注释有关吗?如果是这样的话,我就无法在网上找到一个像样的东西。这里的所有内容似乎都是基本的,如何进行自定义注释和基本处理器,但我没有找到任何适合这种情况的东西。 想法?
答案 0 :(得分:0)
好主意。也许你可以写一个方面,拦截这样注释的方法,查找用户名和密码,并将它们设置为类中的ThreadLocal成员(ThreadLocal,如果你想在多线程环境中使用它)。测试方法然后从成员获得用户名和密码。
答案 1 :(得分:0)
查看TestNG中的“群组”功能。你可以这样做:
public class LoginTest {
private UserData userData;
@BeforeMethod(groups="activedirectory")
public void setup() {
userData = ...
}
@BeforeMethod(groups="ldap")
public void setup() {
userData = ...
}
@Test(groups={"activedirectory","ldap"})
public void testLogin() {
// ...
}
}
然后,您可以根据测试服务器选择是运行“ldap”测试还是“activedirectory”测试。我使用组功能将“单元”测试与“功能”测试分开,例如,后者需要完全配置的环境而前者不需要。我还在仅在开发人员计算机上运行的“手动”组中进行了一些测试。