c# - 引用 Xamarin.Android 项目的 Xamarin UI 测试引发错误
问题描述
我正在Xamarin.UITest
为我的 android 项目创建一个。我正在遵循Microsoft 指南。一切正常,直到最后一点:
将 UITest 项目中的项目引用添加到 Xamarin.Android 项目:
这将允许 NUnitTestAdapter 从 Visual Studio 运行 Android 应用程序的 UITests。
一旦我添加对 Android 项目的引用,它就会出现以下错误:
NU1201:项目 uitest.Android 与 net461 (.NETFramework,Version=v4.6.1) 不兼容。uitest.Android 项目支持:monoandroid81 (MonoAndroid,Version=v8.1)
这很有意义,因为显然.Net Framework 4.6.1
库对 MonoAndroid 一无所知。
我也尝试将其转换为,.Net Standard 2.0
但出现类似错误:
错误 NU1201 项目 uitest.Android 与 netstandard2.0 (.NETStandard,Version=v2.0) 不兼容。uitest.Android 项目支持:monoandroid81 (MonoAndroid,Version=v8.1)
奇怪的是,尽管有错误,该项目仍然可以构建。但是这些错误使我的自动构建 nuget 恢复失败,并出现完全相同的错误。
UI Test 引用 Android 项目的原因是为了Xamarin Test Cloud
能够调用:
if (platform == Platform.Android)
{
return ConfigureApp.Android.StartApp();
}
return ConfigureApp.iOS.StartApp();
您不能在 Xamarin 测试云中使用InstalledApp
or方法ApkFile
我是否误解了什么或者这是一个视觉工作室/Xamarin 错误?
PS。我正在使用最新的 Visual Studio 版本VS 15.8.0
解决方案
您通常不会在 UI 测试项目中引用您的 Android 项目。这样做的原因是:
- 您可以测试一个只有 apk 或 ipa 的应用程序
- 像 Test Cloud 这样的云解决方案将无法访问源代码,因此不会编译代码。
我正在使用这样的apk:
[TestFixture]
public class DroidTest
{
const string _droidPath = "../../APK/my-app.apk";
IApp _app;
[TestFixtureSetUp]
public void Setup()
{
_app = ConfigureApp.Android.ApkFile(_droidPath).StartApp();
}
}
如果您在 Android 项目构建中进行了更改并创建了一个新的 apk。之后重新运行您的测试。
推荐阅读
- javascript - 如何将 npm 包文件复制到我的本地项目?
- r - R中一组完整数据帧的方差
- angular - 运行 Angular 应用程序时出现错误
- html - Bootstrap 4:跨列的卡片下拉菜单?
- android - Firebase 等于查询与列表 Android Studio
- python - Bigtable 还是 Datastore 更适合存储和使用在线应用程序的财务数据?
- python - 我们如何将显式测试数据和训练数据提供给 SVM,而不是使用 train_test_split 函数?
- javascript - 仅通过 javascript 从下拉列表中删除重复项
- java - 问题检索firebase的类似子元素
- mongodb - 如何在MongoDB PHP中查找不区分大小写的值?