Не могу запустить Unitests с Xamarin - PullRequest
0 голосов
/ 28 октября 2019

Я хочу проверить мой код проекта Xamarin (Cookbook) с юнит-тестами. Я создал проект Unitest для Xamarin из Visual Studio (UITest1). Когда я пытаюсь запустить его, компоновщик пишет следующую ошибку:

Error   NU1201  Project Cookbook is not compatible with net461 (.NETFramework,Version=v4.6.1) / win-x64. Project Cookbook supports: monoandroid81 (MonoAndroid,Version=v8.1)    UITest1 

Что я делаю не так? Пробовал в Google, но безуспешно.

Это код Uinitests, если он помогает:

using System;
using System.IO;
using System.Linq;
using Cookbook;
using NUnit.Framework;
using Xamarin.UITest;
using Xamarin.UITest.Queries;

namespace UITest1
{
    [TestFixture(Platform.Android)]
    [TestFixture(Platform.iOS)]
    public class Tests
    {
        IApp app;
        Platform platform;
        private Ingredient ingr;

        public Tests(Platform platform)
        {
            this.platform = platform;
        }

        [SetUp]
        public void BeforeEachTest()
        {
            //app = AppInitializer.StartApp(platform);

            ingr = new Ingredient();
        }

        [Test]
        public void WelcomeTextIsDisplayed()
        {
            AppResult[] results = app.WaitForElement(c => c.Marked("Welcome to Xamarin.Forms!"));
            app.Screenshot("Welcome screen.");

            Assert.IsTrue(results.Any());
        }


         [Test]
        public void ParseFromString()
        {
            Ingredient ingr = new Ingredient();
            ingr.TryToParseFromString("Ingredients");
            Assert.AreEqual(0, ingr.Amount, "amount problem");
            Assert.AreEqual(null, ingr.Item, "item problem");
            Assert.AreEqual(null, ingr.Units, "units problem");
            Assert.AreEqual("Ingredients", ingr.Unparsed, "unparsed problem");
        }

1 Ответ

1 голос
/ 28 октября 2019

Я вижу, что вы смешиваете концепцию модульных тестов и тестов пользовательского интерфейса, поскольку у вас есть оба в вашем тестовом проекте. Вам нужно создать два отдельных проекта, например Cookbook.UITests и Cookbook.UnitTests. Причина в том, что тесты пользовательского интерфейса предназначены для эмуляции поведения пользователя во время его запуска на эмуляторе, реальном устройстве или, возможно, в облачной службе тестирования. Модульные тесты, с другой стороны, должны тестировать такие вещи, как бизнес-логика вашего программного приложения (проще говоря).

Я хотел бы предложить вам следующее:

  1. Создайте два отдельных проекта Cookbook.UITests и Cookbook.UnitTests
  2. Следуйте замечательному руководству SushiHangover по настройке проекта модульного тестирования.
  3. Следуйте инструкциям официальная документация от Microsoft для настройки проекта UITest.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...