Xunit тестирование проводник тестов не запускает тесты

#c# #xunit #test-explorer

Вопрос:

Эй, я прохожу учебник по модульному тестированию на c#, и я не получаю Testexplorer для запуска моих тестов. Он продолжает говорить мне, что есть тесты, но они не выполняются. я в основном перепробовал все, что мне кажется, поэтому я спрашиваю! Почему мои тесты не выполняются, это ошибка в vs или я просто упускаю что-то глупое? Я отправлю учебник, который я использую, но он показывает .net framework, и я понимаю, что мне нужно использовать тестирование .net core для .net core и так далее, поэтому вот учебник https://www.youtube.com/watch?v=ub3P8c87cwkamp;t=1001s и вот мой код…

Класс Тестирования

 using System;
using Gradebook;
using Xunit;
 

namespace GradeBook.Tests
{
    public class BookTests
    {

       [Fact]
        public void Test1()
        {
            // arrange
            var book = new Book("");

            // act
            book.AddGrade(89.1);
            book.AddGrade(90.5);
            book.AddGrade(77.3);

            var result = book.GetStatistics();
            // assert
            Assert.Equal(85.6, result.Average, 1);
            Assert.Equal(90.5, result.High, 1);
            Assert.Equal(77.3, result.Low, 1);

        }


    }
}
 

Тестирование класса im

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Gradebook
{

    public class NamedObject
    {

        public string Name { get; set; }
        public NamedObject(string name)
        {
            Name = name;
        }



    }


    public abstract class BookBase : NamedObject
    {
        protected BookBase(string name) : base(name)
        {
        }
        public abstract void AddGrade(double grade); 
    }



    public class Book : BookBase
    {
        List<double> grades { get; set; }
        public Book(string name) : base(name)
        {
            grades = new List<double>();
            this.Name = name; 
        }

        public override void AddGrade(double grade)
        {
            if(grade <= 100 amp;amp; grade >= 0)
            {
                grades.Add(grade); 
            }
        }
        public Statistics GetStatistics()
        {
            var result = new Statistics();
            result.High = double.MinValue; 
            result.Low = double.MaxValue;

            foreach (var grade in grades)
            {
                result.Low = Math.Min(grade, result.Low);
                result.High = Math.Max(grade, result.High);
                result.Average  = grade; 
            }
            result.Average /= grades.Count;

            return resu<







        }



    }
}
 

Main

 using System;
using System.Collections.Generic;

namespace Gradebook
{
    class Program
    {
        //Double is twice as precise as float. Though takes more memmory.
        static void Main(string[] args)
        {

            var book = new Book("Jens's Grade Book");
            book.AddGrade(89.1);
            book.AddGrade(90.5);
            book.AddGrade(77.5);

            var stats = book.GetStatistics();

            Console.WriteLine($"The lowest grade is {stats.Low}");
            Console.WriteLine($"The highest grade is {stats.High}");
            Console.WriteLine($"The average grade is {stats.Average: N1}");







        }
        private static void EnterGrades(Book book)
        {
            while (true)
            {
                Console.Write("Enter a grade or press 'q' to quit: ");
                var input = Console.ReadLine();
                if(input == "q")
                {
                    break;
                }
                try
                {
                    var grade = double.Parse(input);
                    book.AddGrade(grade); 
                }
                catch(ArgumentException ex) 
                {
                    Console.WriteLine(ex.Message);
                }
                catch(FormatException ex)
                {
                    Console.WriteLine(ex.Message);
                }
                finally
                {
                    Console.WriteLine("**");
                }
            }

        }
        public void useLessCode()
        {
            //float x;
            //float y;
            //x = 34.1F;
            //y = 34.6F;
            //var result = x   y;
            //Console.WriteLine(result.ToString());

            //Arrays are static until used function Resize...

            //var numbers = new[] { 12.7F, 10.3F, 6.11F, 4.1F };
            //float result = new float(); 
            //foreach(var number in numbers)
            //{
            //    result  = number; 
            //}
            //Console.WriteLine(result);
            //numbers[0] = 12.7F;
        }


    }
}
 

класс статистики

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Gradebook
{
    public class Statistics
    {
        public double Average;
        public double High;
        public double Low; 



    }
}
 

изображение моего редактора кода, чтобы вы могли видеть мои ссылки и пакеты
Редактор

Ответ №1:

Установка пакета Microsoft.NET.Test.Sdk из диспетчера пакетов nuget решила мою проблему.