WP7: Начало работы с UnitTest Framework: XamlParseException - PullRequest
4 голосов
/ 25 октября 2011

Я хочу добавить модульные тесты в мой проект WP7.Я следовал за курсами на http://smartypantscoding.com/a-cheat-sheet-for-unit-testing-silverlight-apps-on-windows-phone-7, чтобы начать модульные тесты.Но я не могу заставить его работать.

Я выполнил все шаги из учебника и создал базовые тесты.

Но как только я хочу запустить проект, Visual Studio выдает ошибку:

Произошло исключение XamlParseException Не удается найти ресурс с именем / ключом typeNameConverter [Строка:47 Position: 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; 
} 

Надеюсь, вы поможете мне!спасибо!

Ответы [ 5 ]

4 голосов
/ 19 апреля 2012

Я столкнулся с этим вчера и обнаружил, что 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>

Надеюсь, это кому-нибудь пригодится.

Я могу подтвердить, что решение Майкла Дюмонта также работает, но вы не можете просмотреть подробности запуска теста, что раздражает при попытке просмотреть информацию о поврежденных тестах, если по какой-либо причине у вас не подключен отладчик.

4 голосов
/ 22 декабря 2011

Вы, вероятно, используете инструментарий Джеффа Уиллкокса для Windows Phone 7. Если вы хотите запустить его под новой Windows Phone, попробуйте использовать новую версию инструментария, как я.Попробуйте использовать набор инструментов Джеффа Уилкокса для Windows Phone 7.5 (Mango). Получите его здесь: http://www.jeff.wilcox.name/2011/06/updated-ut-mango-bits/ Удачи.

2 голосов
/ 07 декабря 2011

Убедитесь, что ваш модульный тестовый проект предназначен для .Net Framework 3.0 или 3.5, и используйте сборочные модули Framework Test, совместимые с Mango , созданные Джеффом Уилкоксом. У меня была такая же ошибка, когда проект для .Net Framework 4.0.

1 голос
/ 05 февраля 2012

Я также получил эту ошибку и поставил заглавные переменные 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();
    }
}
0 голосов
/ 25 октября 2011

И исключение относится к XAML в TestPage.Итак, вы публикуете неправильный код.

В любом случае, ошибка очень ясна.Заявленный typeNameConverter в вашем XAML отсутствует.Скорее всего, вы забыли добавить ссылку на сборку, объявляющую ее, или обновить xmlns, чтобы она указывала на другую сборку, а не просто на другое пространство имен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...