我想让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进行更高级的集成测试。为此,我做了以下事情:
将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
将gwt-test-utils.properties
文件添加到目录src/test/resources/META-INF
,其中包含以下内容:
path/to/my/module = gwt-module
添加了一个将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());
}
}
添加了一个csv文件,用于将测试配置为src/test/resources/gwtTests
,内容如下:
开始 initApp assertExist; / loginView / emailTextBox
我尝试通过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都知道所有相关的源文件夹和依赖项。