Тестирование приложения Monotouch с помощью NUnit в MonoDevelop 2.4 - PullRequest
3 голосов
/ 06 октября 2010

Я новичок в Monotouch и Monodevelop.Пытаясь начать работу с NUnit, у меня много проблем - ни одна из отрывочных ссылок, которые я могу найти в Интернете, кажется, не соответствует тому, что я вижу в пользовательском интерфейсе (MonoDevelop 2.4 в Mac OS 10.6).Я попытался:

  1. Добавление проекта «Сборка тестов сборки NUnit» в мое решение.
  2. Добавление проекта «Пустой проект MonoTouch» в мое решение, а затем добавление NUnitсборки и добавления моего основного проекта в качестве ссылки.
  3. Добавление C # «Пустого проекта» в мое решение и добавление NUnit, MonoTouch и моего собственного проекта в качестве ссылок.Это приводит к ошибке сборки, сообщающей, что «[[test project name] .exe» не содержит статический метод «Main», подходящий для точки входа ».

(1) производит странный видпроект, в который я могу добавлять только сборки - без ссылок и, конечно, без тестов.

(2) и (3) ведут себя примерно одинаково:

  • Во-первых, ошибка сборки жалуетсячто нет статического метода Main.Я могу исправить это, изменив цель компиляции на «Library» в параметрах проекта Build -> General.
  • Далее, когда я пытаюсь запустить тесты (с вкладки Unit Testing), он говорит, что запускает ихиспользуя конфигурацию «Отладка | iPhoneSimulator».
  • На панели «Результаты теста» отображается это сообщение «Выполнение тестов», а не какие-либо другие выходные данные.
  • Счетчик остается на «Тесты: 0 Сбой: 0Игнорируется: 0 ".

Ясно, что я здесь что-то не так делаю, но что я должен делать?

Просто ради ухмылки, вот мой тест.

using System;
using NUnit.Framework;
namespace mynamespace
{ 
    [TestFixture]
    public class NavItemTest
    {
        [Test]
        public void TestAll()
        {
           Assert.AreEqual(4, NavItem.all().Count);
        }
    }
}

Ответы [ 3 ]

1 голос
/ 19 октября 2011

Если вы пропустили его, теперь для MonoTouch доступен модуль запуска NUnitLite, который предназначен для работы с кодом, не зависящим от пользовательского интерфейса, и выполняется на устройствах (или в симуляторе).

См .: .NET Unit Runner для iOS

1 голос
/ 01 марта 2011

Записали несколько деталей о том, что мы считаем наилучшей практикой на данный момент. Вы можете найти его здесь: http://ben.phegan.name/index.php/2011/02/28/monotouch-and-unit-testing. Буду рад услышать другие способы сделать это.

Краткий ответ:

  1. Добавить проект NUnit в обычное решение
  2. Добавить сборки MonoTouch в качестве ссылок
  3. Написание тестов, избегая тестирования всего, что использует monotouch.dll (шаблоны проектирования для абстрагирования этого материала).
  4. Win!
0 голосов
/ 31 августа 2015

У меня была такая же проблема:

Это приводит к ошибке сборки, сообщающей, что «[[имя проекта теста] .exe» не содержит статический метод «Main», подходящий для точки входа ».

Исправлено, зайдя в Project -> [Имя проекта] Options -> Build General. Изменена цель компиляции в библиотеку. Я еще не создал класс Main-method, но, вероятно, позже; тогда я вернусь обратно.

...