2013-01-24 14 views
13

W naszym projekcie korzystamy z Visual Studio 2012 i Team Foundation Server 2010. Ponieważ używamy Microsoft Fakes, mogliśmy nie korzystać z uruchomionej funkcji testowania naszego Team Build 2010, stworzyłem działanie kompilacji, które wywołuje VSTest.Console.exe przekazując zestawy testowe. To podejście działa dobrze dla nas. Jednak po ostatniej odprawie otrzymujemy następujący błąd podczas wykonywania pliku Vstest.console.exeWystąpił wyjątek podczas wywoływania executora 'executor: // mstestadapter/v1': Odwołanie do obiektu nie jest ustawione na instancję obiektu

Błąd: Wystąpił wyjątek podczas wywoływania executora "executor: // mstestadapter/v1": Odwołanie do obiektu nie jest ustawione na instancję obiektu.

Skopiowałem pliki binarne na mój komputer lokalny i mogłem ponownie uzyskać błąd. Co ciekawe, uruchamiamy kompilację dev przed odprawą, która uruchamia ten sam plik vstest.console.exe z tymi samymi parametrami i działa poprawnie. Mam dwa foldery na moim komputerze, dla jednego połączenie działa dobrze, a dla innych nie. Skompilowane złożenia wyglądają tak samo i nie ma zbyt wielu różnic, aby to zasugerować.

Próbowałem używać Monitora Procesu, ale nie mogłem znaleźć niczego oczywistego poza tym, że proces powraca z kodem wyjścia 1. Czy ktoś wie dużo na temat tego błędu? Czy jest jakiś sposób, aby uzyskać więcej informacji z mojego testu?

Pozdrawiam,

Hamid

Odpowiedz

4

Dotarliśmy do sedna problemu. Używamy Entity Framework 5.0 i mamy również sytuację, w której niektóre z naszych testowych zestawów są ukierunkowane na .Net 4.0, a niektóre są ukierunkowane na .Net 4.5.

Kiedy próbujemy uruchomić testy w taki sposób, że zespoły ukierunkowane na różne wersje środowiska .Net i przy użyciu Entity Framework 5.0 są uruchamiane w tym samym procesie (vstest.console.exe), otrzymujemy ten błąd.

Myślę, że ma to związek ze sposobem, w jaki Entity Framework 5.0 jest dostarczany w dwóch wersjach (net40 i net45). Gdy jedna wersja biblioteki zostanie załadowana do procesu, druga wersja nie może zostać załadowana, co spowodowało błąd.

2

mam ten sam błąd podany w temacie, gdy w AssemblyInfo projektu jest określony AssemblyAttribute:

[assembly: AssemblyCulture("en")] 

attribute Jeśli jest obecny, przebieg testów jednostkowych nie powiedzie się. Po usunięciu tego wiersza kodu lub usunięciu języka en przebieg testu testuje sukces.

+0

Naprawiono to dla mnie. Czy ktoś ma pojęcie, dlaczego uniemożliwiłoby to uruchomienie testów? To znaczy, kto by pomyślał, że atrybut AssemblyCulture wpłynie na twoje testy jednostkowe ... – mikesigs

+0

W ramach MS Test analizuje typy w twoich złożeniach, aby zobaczyć, które z nich są oznaczone atrybutami TestClass i TestMethod. Przypuszczalnie robi to poprzez odbicie GetCustomAttribute. Czy to możliwe, że wyliczając Zgromadzenie i uzyskując jego atrybuty, nie radzi sobie właściwie z AssemblyCulture? Dziwne przypuszczenie - to, co robi, analizując atrybuty Zgromadzenia, a nie tylko atrybuty Typu, nikt nie zgaduje. – PhillipH

0

Próbowałem wszystkiego w Internecie, aby rozwiązać ten wyjątek. W końcu rozwiązałem ten problem, instalując aktualizację v4 programu Visual Studio 2013 (której aktualnie używam). Mam nadzieję, że to pomoże!

0

Usunięcie app.config i packages.config, jeśli istnieje, i ponowne zainstalowanie struktury Entity przez pakiety nuGet działa dla mnie.

1

miałem ten sam komunikat o błędzie tylko teraz z Visual Studio 2017 z wykorzystaniem nowego MSTest.Framework i MSTest.TestAdapter (aby móc korzystać żywo Unit Testing). Okazało się, że korzystałem z wielu wersji tych pakietów w moim rozwiązaniu. Konsolidacja ich do najnowszej wersji rozwiązała problem.

1

An exception occurred while invoking executor 'executor://mstestadapter/v2'

miałem wielokrotne TestAdapter i TestFramework w moim BuildAgents folderu, usuwanie wersji v1.1.11 naprawił problem:

enter image description here

1

to co pracował dla mnie: W Visual Studio, test -> Ustawienia testu -> Domyślna architektura procesora -> X64.

Choć może to nie rozwiąże wszystkich problemów, mam nadzieję, że pomaga niektórym z was.

Powiązane problemy