gwt-test-utils找不到我的入口点类

时间:2014-01-14 19:36:57

标签: java gwt junit classpath gwt-test-utils

我想让gwt-test-utils工作。我按以下方式设置项目:

src/main/java : all the java source code
src/test/java : the test source code
src/test/resources : resource files for the tests

我正在使用gradle和eclipse构建我的项目。默认情况下,Gradle正确使用这些目录,并将所有这三个目录作为源目录添加到Eclipse中。

我已经成功构建并运行了项目,并且能够执行一些简单的旧JUnit测试以及GWTTestCase,所以我认为我正确地设置了项目及其依赖项。

现在我想使用gwt-test-utils进行更高级的集成测试。为此,我做了以下事情:

  1. 将gwt-test-utils和gwt-test-utils-csv添加到我的依赖项中

    gwtTestUtilsVersion = '0.45'
    testCompile group:'com.googlecode.gwt-test-utils', name:'gwt-test-utils', version:gwtTestUtilsVersion
    testCompile group:'com.googlecode.gwt-test-utils', name:'gwt-test-utils-csv', version:gwtTestUtilsVersion
    
  2. gwt-test-utils.properties文件添加到目录src/test/resources/META-INF,其中包含以下内容:

    path/to/my/module = gwt-module
    
  3. 添加了一个将GwtCsvTest扩展到src/test/java目录中的包的类。它是在gwt-test-utils项目wiki的HowToWriteCsvScenario中的第二个示例之后建模的,用我的示例类替换它们的出现。看起来像这样

    @CsvDirectory(value = "gwtTests")
    public class LoginLogoutTest extends GwtCsvTest
    {
        @Mock
        private MainServiceAsync mainService;
    
        private AppController appController = new AppController();
    
        @CsvMethod
        public void initApp()
        {
            appController.onModuleLoad();
        }
    
        @Before
        public void setup()
        {
            GwtFinder.registerNodeFinder("myApp", new NodeObjectFinder()
            {
                @Override
                public Object find(Node node)
                {
                    return csvRunner.getNodeValue(appController, node);
                }
            });
    
            GwtFinder.registerNodeFinder("loginView", new NodeObjectFinder()
            {
                @Override
                public Object find(Node node)
                {
                    return csvRunner.getNodeValue(appController.getRootPresenter().getCurrentlyActiveSubPresenters().iterator().next().getView(), node);
                }
            });
    
            addGwtCreateHandler(createRemoteServiceCreateHandler());
        }
    }
    
  4. 添加了一个csv文件,用于将测试配置为src/test/resources/gwtTests,内容如下:

    开始 initApp assertExist; / loginView / emailTextBox

  5. 我尝试通过Eclipse的 Run As>执行它。 JUnit Test 和间接通过gradle build(执行所有测试用例,而不仅仅是这个)。两者都导致同样的错误:

    ERROR GwtTreeLogger Unable to find type 'myPackage.client.AppController'
    ERROR GwtTreeLogger Hint: Check that the type name 'myPackage.client.AppController' is really what you meant
    ERROR GwtTreeLogger Hint: Check that your classpath includes all required source roots
    

    AppController类是我在gwt-test-utils.properties中配置的模块中配置的入口点,这使我认为配置正常工作,其余设置(依赖项和所有)也可以正常工作。

    在早期版本中,我使用相同的文件作为GWTTestCase的子类,并以相同的方式创建了AppController实例。这很有效,所以我很确定类路径设置正确,也包含它。我也尝试过将它改回原来的版本,它仍然有效。

    我不知道为什么找不到这门课。有没有什么gwt-test-utils做的不同,这意味着我需要专门为它设置类路径?否则它应该工作,因为gradle和eclipse都知道所有相关的源文件夹和依赖项。

0 个答案:

没有答案