Проект автоматизации не распознает и не запускает файл объектов - PullRequest
0 голосов
/ 20 января 2020

В настоящее время я создал проект модульных тестов в Visual Studio для автоматизации моих тестов с помощью C #, Selenium Web Driver и SpecFlow.

После записи файла .feature в BDD и генерации определений шагов, при запуске всех тестов они не распознаются в диспетчере тестов, и у меня возникает следующая ошибка в IntelliSense.

[Failure] Could not find file 'C:\Users\peter01\source\repos\AutomatedTests\ExampleProject\UnitTest1.cs'.

В моем проекте уже настроен тип вывода "Библиотека классов", и я удалил UnitTest1. файл cs при создании проекта.

Мне нужен тестовый проект для распознавания и запуска всех тестов из моего файла Login.feature

В моем проекте есть только одна функция Файл "Login.feature"

Feature: Login  

    Scenario: Login Success
        Given i access website
        When do login with user
        | user    | password|
        | user123 | pass123 |
        Then show message

И LoginStepDefinition.cs

    using Microsoft.VisualStudio.TestTools.UnitTesting;
    using OpenQA.Selenium;
    using OpenQA.Selenium.Chrome;
    using System;
    using TechTalk.SpecFlow;

    namespace ExampleNamespaceXXXX

        {
            [Binding]    

            public class LoginSteps
            {        
                [Given(@"i access website")]
                public void Example1()
                {
                    example line code
                }

                [When(@"do login with user")]
                public void Example2(Table table)
                {
                    try
                    {
                        example line code
                    }
                    catch (NoSuchElementException)
                    {
                        example line code
                    }
                }

                [Then(@"show message")]
                public void Example3()
                {
                    example line code
                }
            }
        }

Ответы [ 2 ]

1 голос
/ 21 января 2020

Если вы хотите, чтобы VS обнаружил все ваши тесты, вам нужно использовать тестовый адаптер,

. Вы можете настроить тестовый проект различными способами

  1. Если вы хотите использовать MStest runner, добавьте MSTest.TestAdapter и MSTest.TestFramework в свой проект в качестве зависимости.

  2. Если вы хотите SpecRunner , добавьте пакет SpecRun.Runner в файл packages.config ваших проектов SpecFlow. Вам может потребоваться перезапустить Visual Studio для просмотра ваших тестов.

Для получения дополнительной информации вы можете go по официальной ссылке: https://specflow.org/documentation/Troubleshooting-Visual-Studio-Integration/


В моем случае я создал тестовый проект с использованием MSTest Adapter и SpecFlow для запуска всех моих файлов функций. Если вы хотите попробовать, выполните следующие действия:

  1. создать новый проект типа MSTest. VS для создания нового проекта

  2. Введите имя и местоположение проекта для сохранения вашего тестового проекта.

  3. К этому времени вы будете способен видеть все зависимости basi c в вашем проекте. зависимости по умолчанию
  4. Теперь просто добавьте SpecFlow и SpecFlow.Tools.MsBuild.Generation зависимости в область вашего проекта через менеджер пакетов Nuget, чтобы получить обнаружен вашим тест-бегуна и запустить все ваши файлы функций.

Теперь вся конфигурация basi c завершена, и вам нужно собрать свой проект для запуска тестового проекта.

0 голосов
/ 23 января 2020

Сообщение об ошибке означает, что Visual Studio ссылается на файл, который не существует на диске. Вам нужно щелкнуть правой кнопкой мыши по этому файлу в обозревателе решений и выбрать «Исключить из проекта». Обязательно «Сохранить все» впоследствии, исключая файл.

Это может произойти, если вы удалите файл вне Visual Studio. Файл .csproj, который сообщает VS, какие файлы будут включены, обновляться не будет, и Visual Studio попыталась скомпилировать несуществующий файл.

...