2011-09-07 98 views
4

如何运行JUnit我要运行命令行JUnit测试,并像下面的团队创建JUnit类的家伙之一:与参数化的构造

public Test extends TestCore 
{ 
    String some; 

    public Test(String some) 
    { 
     this.some = some; 
    } 
//some test here 
} 

从Eclipse这项工作但命令不线。 执行的结果这种文件给我的错误,如下面:

Test class should have exactly one public zero-argument constructor. 

任何人都可以帮助我吗?

干杯Jaroslaw。

+0

你可以看看这里http://stackoverflow.com/questions/1451496/does-junit4-testclasses-require-a-public-no-arg-constructor – Farmor

+0

你在使用JUnit 4吗? –

+0

如果您使用['BlockJUnit4ClassRunner'](http://kentbeck.github.com/junit/javadoc/latest/org/junit/runners/BlockJUnit4ClassRunner.html#createTest%28%29)(以任何形式)运行你的测试,那么你的测试类需要一个无参数的构造函数; Eclipse不在其JUnit4测试运行器中使用此TestRunner。你可能想重新考虑为什么你需要一个带有你的测试类参数的构造函数。 –

回答

2

Eclipse使用不同的testrunner。也许参数化的构造函数是由TestCore作为参数化测试引起的,例如,像这样:

@RunWith(Parameterized.class) 
public class TestCore { 
    String someThatWillBeHidden; 

    public TestCore(String some) { 
    this.someThatWillBeHidden = some; 
    } 

    @Parameters 
    public static List<Object[]> data() { 
    Object[][] data = new Object[][] { {"Hello"}, {" "}, {"world"}}; 
    return Arrays.asList(data); 
    } 

//some test here 

} 

那么你使用哪个版本的junit?