【发布时间】:2016-05-17 22:02:17
【问题描述】:
我正在尝试让 Xamarin Forms 与 UITest 一起使用,但我似乎无法在 iOS 中设置 StyleId 属性(我没有 Android 许可)。
我已遵循所有文档,这些是我到目前为止所采取的步骤:
AppDelegate:
static readonly IntPtr setAccessibilityIdentifier_Handle = Selector.GetHandle("setAccessibilityIdentifier:");
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
Forms.Init();
Forms.ViewInitialized += (object sender, ViewInitializedEventArgs e) => {
// http://developer.xamarin.com/recipes/testcloud/set-accessibilityidentifier-ios/
if (null != e.View.StyleId) {
e.NativeView.AccessibilityIdentifier = e.View.StyleId;
Console.WriteLine("Set AccessibilityIdentifier: " + e.View.StyleId);
}
};
...
#if DEBUG
Xamarin.Calabash.Start();
#endif
...
}
XAML 内容页面:
<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Ignite.Abacus.Mobile.OptionsView"
Title="Options">
<ContentPage.Content>
<StackLayout>
<Label Text="Test" StyleId="Test" />
</StackLayout>
</ContentPage.Content>
</ContentPage>
现在,这是关键:
如果我调试应用程序,我可以清楚地看到 StyleId 正在设置,因为 AppDelegate 中的 Forms.ViewInitialized 处理程序中的 Console.WriteLine 调用正在写入应用程序输出。但是,如果我调试我拥有的单元测试并从 REPL 查询它,它似乎不会连接 StyleId 属性,因为app.Query(c => c.Marked("Test")) 返回零结果。
我希望在测试范围内运行应用程序时看到控制台输出 - 但它似乎没有向应用程序输出窗口或测试结果窗口输出任何内容(打开输出)...
关于我缺少什么的任何想法?
【问题讨论】:
-
呸 - 这一定是我的特定项目的问题 - 我可以让 UITest 在新项目中正常工作,但我的有问题 - 我将重建项目文件
标签: c# ios xamarin xamarin.uitest