2015-10-05 70 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

好的。沒問題。也許你可以編輯你的問題,以更好地描述你的需求。它可能會讓我或其他用戶更好地理解您的要求 –