自定义注释以配置测试

时间:2010-04-10 22:05:11

标签: java testing annotations

首先让我开始说我认为自定义注释可用于此,但我不完全确定。

我想有一组注释,我可以用它来装饰一些测试类。注释允许我为不同的环境配置测试。例如:

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方法中使用的用户名和密码,以测试特定环境的登录过程。

所以我的问题是这可能与注释有关吗?如果是这样的话,我就无法在网上找到一个像样的东西。这里的所有内容似乎都是基本的,如何进行自定义注释和基本处理器,但我没有找到任何适合这种情况的东西。 想法?

2 个答案:

答案 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”测试。我使用组功能将“单元”测试与“功能”测试分开,例如,后者需要完全配置的环境而前者不需要。我还在仅在开发人员计算机上运行的“手动”组中进行了一些测试。