我无法在任何Android模拟器/模拟器上运行Xamarin.UITests。有什么建议?我尝试时遇到以下错误:
Google模拟器:
SetUp:System.Exception:无法在未激活的情况下在物理设备上运行。 完整版可供Xamarin Test Cloud客户使用,有关更多信息,请联系sales@xamarin.com 如果您已经是Xamarin Test Cloud客户,则可以通过以下方式之一提供api: *使用ApiKey方法添加ConfigureApp *设置XTC_API_KEY环境变量 *将以下属性添加到Properties / AssemblyInfo.cs文件中:[assembly:Xamarin.UITest.TestCloudApiKey(YOUR_API_KEY)] *将包含api密钥的xtc_api-key文件放在测试程序集的上游目录中
Xamarin Android播放器:
SetUp:System.Exception:没有连接设备
GenyMotion:
SetUp:System.Exception:无法执行:/ users / erikandersen / Library / Developer / Xamarin / android-sdk-macosx / platform-tools / adb devices - 退出代码:1 无法绑定&#t; tcp:5037' ADB服务器没有确认 *未能启动守护进程* 错误: adb服务器已过期。杀死...
将GenyMotion更新为2.3.1后,我现在收到以下错误:
SetUp:System.Exception:App安装失败并输出:12050 KB / s(在0.907s中为11199602字节) pkg:/data/local/tmp/final-xxxxxx.apk 失败[INSTALL_FAILED_CPU_ABI_INCOMPATIBLE]
NUnit代码
AndroidApp _app;
public string PathToAPK { get; set; }
[TestFixtureSetUp]
public void BeforeAll ()
{
var path = new Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath;
var info = new FileInfo(path);
var directory = info.Directory.Parent.Parent.Parent.FullName;
PathToAPK = Path.Combine(directory, "Android", "bin", "Debug", "Demo.Android.apk");
}
[SetUp]
public void BeforeEach ()
{
_app = ConfigureApp.Android.ApkFile (PathToAPK).StartApp ();
}
[Test]
public void TestInvalidEmail ()
{
_app.EnterText (c => c.Class ("UITextField"), "");
}
永远不会调用TestInvalidEmail(),因为NUnit在
上失败_app = ConfigureApp.Android.ApkFile (PathToAPK).StartApp ();
背景:
我正在使用Xamarin.UITests进行iOS / Android应用程序我正在开发并且我们遇到了Android方面的问题。 iOS工作得很好。我已经两次编写每个测试,一次是在C#中,一次是在Ruby中使用calabash,以便隔离问题。 Calabash工作正常,但任何C#NUnit测试项目都无法连接到我尝试启动的任何模拟器。
我尝试过的事情:
答案 0 :(得分:2)
所以,经过几个小时的研究,这就解决了这个问题:
Android项目>选项> Android Build>高级选项卡>支持的ABI>检查“armeabi,armeabi-v7a,x86”>行
/ usr / bin / xbuild / t:Package / p:Configuration = Release .csproj
calabash-android resign ./bin/Release/.apk
它有效!我仍然无法使用Google Emulator或Xamarin Android Player运行UI测试。有趣的是,我也无法使用GenyMotion调试我的Android项目。这对UITests只有好处。这是我目前的设置:
Xamarin Android Player - 正常调试
GenyMotion - UITests
答案 1 :(得分:0)
我遇到了同样的问题,并在设置ConfigureApp时设置了ApiKey。
[SetUp]
public void SetUp()
{
_app = ConfigureApp.iOS.AppBundle(PathToIPA).ApiKey("YOUR_API_KEY_HERE").StartApp();
}
与here一样。把你的ApiKey放在那里。
注意:我对Xamarin Android Player没有这个问题。运行Android 5.0模拟器的AVD我没有遇到这个问题。我只在运行Android 4.0.3模拟器的AVD上遇到此问题。