2

我有一个使用导航框架的Silverlight应用程序。在silverlight中测试导航

我试图写一个单元测试使用Silverlight的测试框架,应用程序,但是当我执行的测试方法我收到以下错误:

InvalidOperationException 
No XAML was found at the location '/Pages/LoginPage.xaml' 

的单元测试方法如下所示:

[TestMethod] 
[Asynchronous] 
public void TestMethod1() 
{ 
    var mainPage = new MainPage(); 
    WaitFor(mainPage, "Loaded"); 
    TestPanel.Children.Add(mainPage); 
    EnqueueCallback(() => Assert.IsTrue(mainPage != null)); 
    EnqueueTestComplete(); 
} 

这里的MainPage.xaml中:

<UserControl x:Class="AccurateSilverlight.MainPage" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
mc:Ignorable="d" d:DesignHeight="577" d:DesignWidth="858" 
xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk" 
HorizontalContentAlignment="Center"> 

<Grid x:Name="LayoutRoot" Background="White"> 
    <Grid Height="36" Name="grid1" VerticalAlignment="Top" 
      Background="#FF9A9A9A"> 
     <ComboBox Height="23" HorizontalAlignment="Left" Margin="6,6,0,0" 
        Name="ModuleComboBox" VerticalAlignment="Top" 
        Width="250" IsEnabled="False" /> 
     <Button Content="Logout" Height="23" Margin="0,7,6,0" 
       Name="LogoutButton" VerticalAlignment="Top" 
       HorizontalAlignment="Right" 
       Width="75" IsEnabled="False" Click="LogoutButton_Click" /> 
    </Grid> 
    <sdk:Frame Margin="0,35,0,0" Name="NavigationFrame" 
       Source="/Pages/LoginPage.xaml" 
       Navigated="NavigationFrame_Navigated" /> 
</Grid> 
</UserControl> 

如果我跑了“米ain“xap应用程序正常工作。测试时我只是有这个错误。

我怀疑这个错误是由于单元测试框架执行它的xap并在其中嵌入了我的xap,但无法找到解决这个问题的方法。

任何线索?

回答

2

/Pages/LoginPage.xaml是相对于您当前的程序集。您需要使用pack URIs完全符合您的路线。

最终结果应该是这样的:/AccurateSilverlight;component/Pages/LoginPage.xaml

+0

很好用!谢谢! – iggymoran 2010-10-20 09:43:47