4
votes

Test Specflow non découvert sur l'explorateur de tests c #

J'ai fait de nombreuses recherches avant de publier la question, mais je n'ai pas trouvé de solution pour résoudre mon problème.

J'essaie d'utiliser le sélénium pour faire des tests d'automatisation, mais le problème est que mon explorateur de tests ne reprend pas les tests de specflow pour une raison quelconque.

Voici ce que j'utilise:

  • Projet principal c # .net
  • Specflow
  • Xunit
  • Pilote Selenium
  • Pilote Selenium Chrome

Packages NuGet que j'ai installés:

  • Selenium.Support
  • Selenium.WebDriver
  • Selenium.WebDriver.ChromeDriver
  • Specflow
  • Specflow.NetCore
  • Specflow.xUnit
  • SpecRun.Runner
  • xunit
  • xunit.core
  • xunit.runner.visualstudio

J'ai également installé Specflow pour Visual Studio 2017.

J'ai installé et désinstallé des tas de packages NuGet pour essayer de résoudre ce problème. Quelqu'un peut-il m'aider s'il vous plaît?


3 commentaires

De plus, lorsque je construis les solutions, cela me renvoie cette erreur: [30/01/2019 10:15:46 Error] Une exception s'est produite lors de l'appel de l'exécuteur 'executor: //specrun/executorV3.0.194': Une exception a été levée par le cible d'une invocation. Impossible de charger le fichier ou l'assembly 'TechTalk.SpecRun.Common, Version = 3.0.0.0, Culture = neutral, PublicKeyToken = d0fc5cc18b3b389b'. Le système ne peut pas trouver le fichier spécifié. ========


Vous n'avez pas besoin de 2 coureurs. Je supprimerais SpecRun.Runner.


Je l'ai fait, mais cela ne dit pas qu'un test est disponible dans home \ username \ Documents \ Visual Studio 2017 \ Projects \ TestSelenium \ TestSelenium \ bin \ Debug \ netcoreapp‌ 2.1 \ TestSelenium.dll‌.


3 Réponses :


0
votes

Il me semble que vous pourriez manquer la référence à TechTalk.SpecRun.Common. Veuillez vérifier que cela figure dans vos références de solution.

S'il est référencé, le cache de votre adaptateur de test est peut-être corrompu. Essayez de parcourir ces étapes: Dépannage de l'intégration de Visual Studio


1 commentaires

J'ai supprimé les packages SpecRun NuGet, car j'ai également le Xunit Runner, mais maintenant il est dit "Aucun test n'est disponible dans ..."



4
votes

Après de nombreux essais, j'ai finalement corrigé. Après avoir supprimé l'un des coureurs, SpecRun, j'ai ajouté le package NuGet Specflow.Tools.MSbuild.Generation et cela a résolu le problème.

J'espère que cela sera utile pour quelqu'un avec le même problème!


3 commentaires

Avez-vous cela fonctionne avec VS Code? Il semble que votre solution soit là où je veux commencer - avez-vous un exemple sur GitHub?


Je n'utilise pas de code VS, j'utilise Visual Studio 2017


Avez-vous un exemple de solution que vous pourriez mettre sur GitHub?



1
votes

Si vous rencontrez le problème et que vous avez déjà installé le package NuGet Specflow.Tools.MSBuid.Generation dans votre projet, vous perdez par intermittence vos tests générés, alors vous devez être conscient que il y a un bogue dans Specflow.Tools.MSBuild.Generation Version = 2.3.2

Vous pouvez passer à une version plus récente de Specflow.Tools.MSBuild.Generation ou appliquez une solution de contournement.

La solution de contournement consiste à modifier votre .csproj et à ajouter une section après AfterUpdateFeatureFilesInProject.

<Target Name="AfterUpdateFeatureFilesInProject">
  <ItemGroup>
    <Compile Include="@(SpecFlowGeneratedFiles)" />
  </ItemGroup>
</Target>

<!-- Workaround Specflow 2.3 MSBuild bug. SpecFlowGeneratedFiles 
     is not set if UpdateFeatureFilesInProject is up-to-date
   causing tests not to be discovered, as they are not included in the project -->
<ItemGroup>
  <Compile Include="**/*.feature.cs" Exclude="@(SpecFlowGeneratedFiles)">
    <DependentUpon>%(Filename)</DependentUpon>
  </Compile>
</ItemGroup>


0 commentaires