自动化项目无法识别和运行功能文件

问题描述 投票:0回答:1

当前,我在Visual Studio中创建了一个单元测试项目,以使用C#,Selenium Web Driver和SpecFlow自动化测试。

用BDD编写.feature文件并生成步骤定义后,运行所有测试时,它们在测试管理器中无法识别,并且在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
                }
            }
        }
c# selenium unit-testing selenium-webdriver specflow
1个回答
0
投票

[如果您想让VS检测所有测试,则需要使用测试适配器,

您可以用不同的方式配置测试项目

  1. 如果要使用MStest运行器,则将MSTest.TestAdapterMSTest.TestFramework作为依赖项添加到您的项目中。

  2. 如果要SpecRunner,则将SpecRun.Runner包添加到packages.configSpecFlow项目的文件。您可能需要重新启动VisualStudio查看您的测试。

有关更多参考,您可以通过官方链接:https://specflow.org/documentation/Troubleshooting-Visual-Studio-Integration/


就我而言,我已经使用MSTest Adapter和SpecFlow创建了一个测试项目来运行我的所有功能文件,如果您想尝试一下,请按照以下步骤操作:

  1. 创建类型为MSTest的新项目。 VS to create new project

  2. 输入项目名称和位置以保存您的测试项目。

  3. 这次,您将能够看到项目中的所有基本依赖关系。 default dependencies
  4. 现在只需通过Nuget包管理器将这两个依赖项添加到您的项目范围中,以使测试运行程序检测到并运行您所有的功能文件。 SpecFlowSpecFlow.Tools.MsBuild.Generation

现在所有基本配置已完成,您需要构建项目以运行测试项目。

© www.soinside.com 2019 - 2024. All rights reserved.