xamarin UI 测试 - 无法加载我指向的本机 APK 路径
Posted
技术标签:
【中文标题】xamarin UI 测试 - 无法加载我指向的本机 APK 路径【英文标题】:xamarin UI Test - Unable to load the native APK path that I point to 【发布时间】:2017-02-14 02:02:36 【问题描述】:我想通过以下代码引用 APK 的路径,在原生 android APK 上运行 REPL UI 测试。
public void BeforeEachTest()
app = ConfigureApp.Android
.ApkFile("C:/app-debug.apk")
.StartApp():
public void AppLaunches()
app.Repl();
但是,在运行测试期间,它总是会像下面这样加载测试,这不是我设置的路径。
从 testing\Xamarin Testing\AndroidTest\AndroidTest\bin\Debug\AndroidTest.dll 加载测试
REPL 控制台没有打开,我选择的 APK 没有被测试,也没有错误信息,我该怎么办?
我没有找到任何相关的解决方案。
我已安装:NUnit 2.6.4、NUnit3TestAdapter 3.7.0、NUnitTestAdapter2.0.0 和 Xamarin.UITest 2.0.5.1591-dev
【问题讨论】:
请将您的代码图片替换为您的代码文本。可以使用格式化工具。请记住,图像与剪贴板、屏幕阅读器或搜索引擎不兼容。 “加载测试”错误消息与您看到的问题无关,因为它指向测试 DLL,而不是 APK。我认为问题可能是您的 APK 文件路径格式错误。你可以试试“/app-debug.apk”吗? 【参考方案1】:您会注意到以下路径中的 // 语法适用于我的 UI 测试。为什么不试试 C://whateverfolderyourapkisin/app-debug.apk。
if (platform == Platform.Android)
var path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
path = path.Substring(6);
path = path.Replace("UITest", "My_AppFolder_PCL\\My_AppFolder_PCL.Droid");
path = path + "/com.mycompany.myapp.apk";
path = path.Replace("\\", "//");
return ConfigureApp
.Android
.EnableLocalScreenshots()
.ApkFile(path)
.StartApp();
【讨论】:
【参考方案2】:一种更优雅的方式:
if (platform == Platform.Android)
var path = System.AppDomain.CurrentDomain.BaseDirectory;
path = Directory.GetParent(path).Parent.Parent.Parent.FullName;
path = Path.Combine(path, "Droid/bin/Release/app-Signed.apk");
return ConfigureApp
.Android
.EnableLocalScreenshots()
.ApkFile (path)
.StartApp();
【讨论】:
以上是关于xamarin UI 测试 - 无法加载我指向的本机 APK 路径的主要内容,如果未能解决你的问题,请参考以下文章
为啥我无法在 Xamarin UI 测试中使用 app.Device.IsPhone
无法在 xamarin.forms 上运行 XAMARIN UI TEST,错误 System.Exception
使用 Xamarin UI 测试运行 UI 测试用例时出现异常“SetUp:System.Exception:无法联系在应用程序中运行的测试后端”