如何创建一个共享目录来在集成测试和小部件测试之间共享代码



如何在flutter中创建集成测试和Widget测试之间的共享代码目录?可能有相当多的,因为他们现在使用相同的API作为新的官方

在Android本机中,您可以执行以下操作,以便在本地非仪表化UI测试(引擎盖下的Roboelectric(和带API的仪表化Espresso测试之间共享代码。当然还有各种各样的共享助手,嘲笑,等等。

如何在Flutter中实现类似的目标?

// This allows us to share classes between androidTest & test directories.
android.sourceSets {
test {
java.srcDirs += "$projectDir/src/testShared"
}
androidTest {
java.srcDirs += "$projectDir/src/testShared"
}
}

这可以使用共享包(即test_base(来实现。

  1. 为您的测试代码创建一个包(避免混淆:您的代码将写在其lib文件夹中(

运行:

flutter create --template=package test_base
  1. 将主程序包添加为test_base的依赖项,以便您可以访问主程序包代码

test_base/pubspec.yaml

dependencies:
<your-package-name>:
path: ../
  1. test_base作为开发依赖项添加到主库中

/pubspec.yaml

dev_dependencies:
test_base:
path: test_base/

现在,您可以在小部件/集成测试中导入test_base包。

注意:通过这种方式,您可以在test_base中导入具有可传递依赖项(主包的依赖项(的包,而不会出现编译错误。但在dart中,不鼓励显式导入test_base/pubspec.yaml中未显式定义的依赖项包,并且在dart的未来版本中可能会面临linter或编译警告(目前为2.13.4,没有警告(。这意味着您需要在test_base/pubspec.yaml中明确定义这些依赖关系。尽管我认为情况是这样的,但导入可传递的依赖项包是无害的。

最新更新