Frage

Hat jemand Erfahrung damit, MSTest dazu zu bringen, hibernate.cfg.xml ordnungsgemäß in das Ausgabeverzeichnis zu kopieren?Alle meine MSTests schlagen mit der Fehlermeldung „hibernate.cfg.xml kann nicht gefunden werden“ fehl (ich habe die Option „Immer kopieren“ eingestellt), aber meine MBUnit-Tests bestehen.

War es hilfreich?

Lösung

Sie können versuchen, das DeploymentItemAttribute zu einem Ihrer Tests hinzuzufügen, oder Ihre .testrunconfig-Datei bearbeiten und die Datei zur Bereitstellungsliste hinzufügen.

Andere Tipps

Bearbeiten Sie localtestrun.testrunconfig (in Ihrem Lösungselementordner).Wählen Sie die Bereitstellungsoption und fügen Sie die Datei hibernate.cfg.xml zur Liste der zusätzlich bereitzustellenden Dateien hinzu.Die Datei sollte dann in das Ausgabeverzeichnis kopiert werden, wo der Test ausgeführt wird.

Bin vor ein paar Wochen auf dasselbe gestoßen – das ist tatsächlich ein Fehler mit MSTest – Ich glaube, das wurde mit der jüngsten Korrektur korrigiert Service Pack-Veröffentlichung (auch wenn dort immer noch „Aktiv“ steht).Wenn nicht, musste ich nur direkt auf meine Datei „hibernate.cfg.xml“ verweisen (schlampig, funktioniert aber zum Testen – hier wird auf die Datei „hibernate.cfg.xml“ in meinem Testprojekt aus dem Ordner „TestResults“ verwiesen):

 try
           {
                sessionFactory = new Configuration()
                    .Configure()
                    .BuildSessionFactory();
            }
            // Assume we are in "MSTest mode"
            catch (Exception)
            {
                sessionFactory = new Configuration()
                    .Configure(@"..\..\..\Program.Tests\" + @"\hibernate.cfg.xml")
                    .BuildSessionFactory();
            }

eher ein Workaround als eine Antwort:NHibernate unterstützt programmatische Konfiguration.So können Sie Ihre eigene native Eigenschaften-/Konfigurationsdatei schreiben und diese beim Start in Ruhezustandskonfigurationen analysieren.

Ich markiere meine NHibernate-Konfigurationsdateien gerne als eingebettete Ressourcen und verwende die Überladung Configuration.Configure(), die Konfigurationsdateien aus den Assembly-Ressourcen liest.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top