gpt4 book ai didi

flutter - 如何创建共享目录以在集成测试和小部件测试之间共享代码?

转载 作者:行者123 更新时间:2023-12-05 06:48:30 27 4
gpt4 key购买 nike

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

在 Android native 中,您可以执行以下操作,以便在本地非仪器化 UI 测试(底层的 Roboelectric)和使用 Espresso 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/

现在您可以在widget/integration 测试中导入test_base 包。

注意:这样在 test_base 中您可以导入 transitive dependencies 的包(你的主包的依赖项)没有编译错误。但是在 dart 中不鼓励显式导入你没有在 test_base/pubspec.yaml 中显式定义的依赖包,它很可能面临 linter或 dart future 版本中的编译警告(目前是 2.13.4,没有警告)。这意味着您需要在 test_base/pubspec.yaml 中显式定义这些依赖项。尽管我认为是这种情况,但导入传递依赖包是无害的。

关于flutter - 如何创建共享目录以在集成测试和小部件测试之间共享代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66824928/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com