2015-10-05 55 views
0

我有一个项目有一个junit测试类,我需要在编译时生成多个junit类,我想要做的是具有相同的junit类但有变化属性值。使用java和maven在编译时生成类

我无法在运行时完成此操作,此编译将在编译时完成。

我试图看到aspectj,但无法找到如何在编译时生成类。

是甚至可能在java?

+1

您可以使用@Parameterized测试呢?例如http://www.mkyong.com/unittest/junit-4-tutorial-6-parameterized-test/ –

+0

AOP绝对不会帮你在这里。您也不应该在运行应用程序附近的任何地方使用Maven。看看[Junit规则](https://github.com/junit-team/junit/wiki/Rules)或@Benoît的回答中的@参数化建议 –

+0

我闻到代码异味。 – Snickers3192

回答

0

您可以使用@Parameterized由安迪说,或者一个基础测试类继承:

abstract class CommonTests { 
    @Test 
    public void testA() { 
     assertEquals(1, getValue()); 
     ... 
    } 

    @Test 
    public void testB() { ...} 
    .... 
    abstract int getValue(); 
} 

class Test1 extends CommonTests { 
    int getValue() { return 1;} 
} 

class Test2 extends CommonTests { 
    int getValue() { return 2;} 
} 
+0

感谢您的建议,但这不会与我们合作,我们希望动态生成类,并作为上述评论, aws设备场不支持junit的这些功能。 我真正需要的是在编译时使用aop来生成类,但是这似乎不可能在java –

+0

好的。没问题。也许你可以编辑你的问题,以更好地描述你的需求。它可能会让我或其他用户更好地理解您的要求 –