Domanda

Ho configurato Specflow di indirizzare il quadro MSTest (invece di NUnit) specificando come questo nel app.config della mia libreria di classi 'specifiche':

<configSections>
    <section name="specFlow"
   type="TechTalk.SpecFlow.Configuration.ConfigurationSectionHandler, TechTalk.SpecFlow"/>
</configSections>

<specFlow>
 <unitTestProvider name="MsTest.2010" />
</specFlow>

Quindi, una volta che è a posto, posso vedere che le mie attrezzature di prova sono prodotte correttamente lo strumento personalizzato Specflow, con la corretta TestClassAttribute () e metodi, etc:

[System.CodeDom.Compiler.GeneratedCodeAttribute("TechTalk.SpecFlow", "1.3.3.0")]
[System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[Microsoft.VisualStudio.TestTools.UnitTesting.TestClassAttribute()]
...

le specifiche della classe costruisce, ma ora non riesco a eseguire i test con il test -> Esegui -> Tutti i test in soluzione all'interno di Visual Studio 2010 sulla mia casella di Vista 64. Perché VS non riconosce questi come test validi per eseguire?

È stato utile?

Soluzione 2

ho dovuto ricreare il progetto come un Test Project e non semplicemente una Class Library - perché avevo iniziato lo sviluppo con NUnit e SpecFlow, avevo creato una libreria di classi di vaniglia per tenere le mie specifiche che aveva il NUnit attributi decorato. Ho pensato che avrei potuto semplicemente cambiare l'app.config di questo progetto esistente per punto al quadro mstest e smettere di usare NUnit, ma VS2010 mai riconosciuto i test, nonostante la corretta creazione dei mozziconi da strumento personalizzato di specflow.

Quindi ... ho aggiunto un nuovo Test Project per la mia soluzione, si è trasferito tutto il mio codice di spec a quello nuovo progetto, quindi ricompilato, e viola, VS2010 riconosce i test. Sono sicuro che c'è un GUID che sta cercando in XML del file csproj o qualcosa che gli dice di cablare il framework di test, ma non ho scavare così lontano.

Spero che questo aiuta qualcuno.

Altri suggerimenti

Dror Helper Alex Duggleby si vorrà aggiungere la seguente riga al file csproj:

<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

aggiungere un commento dopo l'elemento FileAlignment, e ricaricare il progetto. Ora dovrebbe essere un progetto MS test e si ottiene la funzionalità di MS test nel contesto di questo progetto. I GUID dire:

  • {3AC096D0-A1C2-E12C-1390-A8335801FDAB} - Test Project
  • {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - C # libreria di classi

Per modificare il modello di progetto di libreria di classi in un progetto di test, modificare il .csproj e aggiungere la seguente riga:

<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>

al primo elemento gruppo di proprietà:

<PropertyGroup>
    <ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top