2011-10-24 11 views
4

WP7プロジェクトに単体テストを追加したいと思います。ユニットテストを開始するには、http://smartypantscoding.com/a-cheat-sheet-for-unit-testing-silverlight-apps-on-windows-phone-7の泥棒に従ってください。しかし、私はそれを稼働させることはできません。WP7:UnitTestフレームワークの使い方:XamlParseException

私はチュートリアルのすべての手順に従い、basectestsを作成しました。

しかし、すぐに、私はプロジェクトを開始したいと、Visual Studioは、エラーがスローされます。

XamlParseExceptionが を発生した名前/キーtypeNameConverter [::47ポジション24ライン]でリソースを見つけることができません

ライン47は、初期CreateTestPageを参照:

private void MainPage_Loaded(object sender, RoutedEventArgs e) 
{ 
      SystemTray.IsVisible = false; 
Line47:  var testPage = UnitTestSystem.CreateTestPage() as IMobileTestPage; 
      BackKeyPress += (x, xe) => xe.Cancel = testPage.NavigateBack(); 
      (Application.Current.RootVisual as PhoneApplicationFrame).Content = testPage; 
} 

は、あなたが私を助けることを願って! ありがとうございます!

答えて

4

Windows Phone 7用のJeff Willcoxのツールキットを使用している可能性があります。新しいWindows Phoneで実行する場合は、私が行ったように新しいバージョンのツールキットを使用してみてください。 Windows Phone 7.5(Mango)用のJeff Willcoxのツールキットを使用してみてください。http://www.jeff.wilcox.name/2011/06/updated-ut-mango-bits/ 幸運を祈る。

0

例外はTestPageのXAMLを指します。あなたは間違ったコードを投稿しています。

とにかく、エラーは非常に明確です。 XAMLに宣言されたtypeNameConverterが見つかりません。たぶん、それを宣言しているアセンブリへの参照を追加したり、別の名前空間だけでなく、別のアセンブリを指すようにxmlnsを更新することを忘れた可能性があります。

2

ユニットテストプロジェクトが.Net Framework 3.0または3.5向けで、Jeff Wilcoxが作成したUnit Test Framework Assemblies compatible with Mangoを使用していることを確認してください。プロジェクトが.Net Framework 4.0用である場合、私は同じエラーが発生しました。

1

私もこのエラーを受け取り、探していたValueConvertersをスタブして、正常にフレームワークを動作させることができました。

App.xaml

<!--Application Resources--> 
<Application.Resources> 
    <s:typeNameConverter x:Name="typeNameConverter"></s:typeNameConverter> 
    <s:fontWeightConverter x:Name="fontWeightConverter"></s:fontWeightConverter> 
</Application.Resources> 

値コンバーター

public class typeNameConverter : IValueConverter { 
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { 
     throw new NotImplementedException(); 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { 
     throw new NotImplementedException(); 
    } 
} 

public class fontWeightConverter : IValueConverter { 
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { 
     throw new NotImplementedException(); 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { 
     throw new NotImplementedException(); 
    } 
} 
4

私はこの昨日発生したApp.xamlが誤って設定されたことがわかりました。推測を使用して(つまり、どのインターフェイスがIValueConverterを実装していますか?)、私はこのソリューションを見つけました。これはうまくいくようです。

まず、あなたの<Application>名前空間にこの名前空間を追加します。

xmlns:Client="clr-namespace:Microsoft.Silverlight.Testing.Client;assembly=Microsoft.Silverlight.Testing"> 

はその後<Application>にこれを追加します。

<Application.Resources> 
    <Client:TypeNameVisibilityConverter x:Name="typeNameConverter" /> 
    <Client:FontWeightConverter x:Name="fontWeightConverter" /> 
</Application.Resources> 

私は、これは誰かに役立ちます願っています。

マイケル・デュモンのソリューションも同様ですが、何らかの理由でデバッガを接続していないときに壊れたテストの情報を表示しようとすると、テスト実行の詳細を表示できません。

関連する問題