2014-02-19 19 views
1

我有一個runner類作爲JBehave測試工作的一部分,無論出於何種原因,Eclipse不允許JUnit用於「Run As ...」。我嘗試通過「mvn -Dtest = LoginTrial test」通過Maven手動啓動它,它也沒有認出測試。這是它的代碼,任何想法都將不勝感激。JUnit不承認測試(在Eclipse或Maven中)

package tests.acceptanceTests.featureTests.login; 

import java.text.SimpleDateFormat; 
import java.util.List; 

import org.jbehave.core.InjectableEmbedder; 
import org.jbehave.core.annotations.Configure; 
import org.jbehave.core.annotations.UsingEmbedder; 
import org.jbehave.core.annotations.UsingSteps; 
import org.jbehave.core.embedder.Embedder; 
import org.jbehave.core.embedder.StoryControls; 
import org.jbehave.core.io.CodeLocations; 
import org.jbehave.core.io.LoadFromClasspath; 
import org.jbehave.core.io.StoryFinder; 
import org.jbehave.core.junit.AnnotatedEmbedderRunner; 
import org.jbehave.core.parsers.RegexPrefixCapturingPatternParser; 
import org.jbehave.core.reporters.StoryReporterBuilder; 
import org.jbehave.core.steps.ParameterConverters.DateConverter; 
import org.junit.Test; 
import org.junit.runner.RunWith; 

import steps.login.LoginSteps; 
import tests.acceptanceTests.featureTests.login.LoginTrial.MyDateConverter; 
import tests.acceptanceTests.featureTests.login.LoginTrial.MyReportBuilder; 
import tests.acceptanceTests.featureTests.login.LoginTrial.MyStoryControls; 
import tests.acceptanceTests.featureTests.login.LoginTrial.MyStoryLoader; 


@RunWith(AnnotatedEmbedderRunner.class) 
@Configure(storyControls = MyStoryControls.class, storyLoader = MyStoryLoader.class, storyReporterBuilder = MyReportBuilder.class, parameterConverters = { MyDateConverter.class }) 
@UsingEmbedder(embedder = Embedder.class, generateViewAfterStories = true, ignoreFailureInStories = true, ignoreFailureInView = true, verboseFailures = true, 
    storyTimeoutInSecs = 100, threads = 2, metaFilters = "-skip") 
@UsingSteps(instances = { LoginSteps.class }) 
public abstract class LoginTrial extends InjectableEmbedder 
{ 
@Test 
public void run() 
{ 
    List<String> storyPaths = new StoryFinder().findPaths(CodeLocations.codeLocationFromClass(this.getClass()), 
      "../../../../../stories/login_trial.story", ""); 
    injectedEmbedder().runStoriesAsPaths(storyPaths); 
} 

public static class MyStoryControls extends StoryControls { 
    public MyStoryControls() { 
     doDryRun(false); 
     doSkipScenariosAfterFailure(false); 
    } 
} 

public static class MyStoryLoader extends LoadFromClasspath { 
    public MyStoryLoader() { 
     super(LoginTrial.class.getClassLoader()); 
    } 
} 

public static class MyReportBuilder extends StoryReporterBuilder { 
    public MyReportBuilder() { 
     this.withFormats(org.jbehave.core.reporters.Format.HTML, org.jbehave.core.reporters.Format.TXT, org.jbehave.core.reporters.Format.XML).withDefaultFormats(); 
    } 
} 

public static class MyRegexPrefixCapturingPatternParser extends RegexPrefixCapturingPatternParser { 
    public MyRegexPrefixCapturingPatternParser() { 
     super("%"); 
    } 
} 

public static class MyDateConverter extends DateConverter { 
    public MyDateConverter() { 
     super(new SimpleDateFormat("yyyy-MM-dd")); 
    } 
} 
} 

回答

2

您的測試類是抽象的。刪除抽象修飾符。

+0

:: facepalm ::感謝您拿我愚蠢的錯誤。我很感激。 – Taelus

相關問題