1

我是新來的TeamCity,我試圖將其配置爲構建和運行在溶液中的所有單元測試運行單元測試。對於沒有使用TypeMock的測試來說工作正常,但對於那些正在使用TypeMock的測試來說,它沒有效果。獲得TeamCity的使用typemock

我已經經歷了很多帖子轉眼就typemock.org和StackOverflow的太多,但我沒有得到逐步解決任何明確的步驟,以解決這個問題。

我所做的又是

添加了我使用

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\MsTest.exe 
C:\TeamCity\AutoDeploy\TypeMock.dll 
C:\TeamCity\AutoDeploy\TypeMock.MSBuild.dll 
C:\BuildAgent\work\d0c2681a8633b717\www.Domain.Tests\bin\Release\qqq.Domain.Tests.dll 

我缺少一些構建配置,但我不知道如果我要做到這一點對MSTest的太

的組件列表
+3

究竟是什麼問題?你是否收到錯誤信息?或者TeamCity是不是「看」測試? –

+0

團隊城市說TypeMock未啓用 – rajansoft1

+1

請告訴我們*確切*消息。 –

回答

3

免責聲明我在Typemock工作。

你的情況最好的解決辦法是,如果你使用的不是構建腳本可以設置TeamCity的過程中啓用了隔離運行使用某種類似的MSBuild或惡性
構建腳本的。以下是執行此操作的步驟:

  • 在TeamCity項目頁面中,轉到您希望更改並點擊設置的項目。
  • 在設置頁面中,轉到構建參數並選擇編輯。
  • 在編輯頁面選擇添加新參數。
  • 在Type部分的編輯框中選擇Environment variable(env。)
  • 在名稱文本框中放COR_ENABLE_PROFILING
  • 在值文本框中把爲0x1
  • 點擊保存按鈕

重複一次上述步驟,但改變的環境變量的名稱COR_PROFILER和{B146457E-9AED-4624-B1E5-968D274416EC}的值

這將導致TeamCity及其子進程(如msbuild)與Isolator進行概要分析。 同樣,我不認爲這是最好的解決方案,但它應該爲你做這項工作。

+0

沒有爲我工作:( – rajansoft1

+0

非常感謝,它現在對我來說:) – rajansoft1

+0

爲什麼不推薦這麼做? – dcinadr

0

我想你是gettig這個錯誤,因爲你沒有配置TypeMock使用MSTest來運行測試。

  1. Windows的「開始」 >>所有程序>> TypeMock文件夾>>隔離文件夾>>打開隔離配置
  2. :這是否在你的TeamCity沒有做但按照下面的步驟生成代理的機器,你可以做
  3. Profilers/Code Coverage選項卡下打開了新的窗口,選中該複選框Show only available profilers並在下拉菜單上面,它應該列出NCover(這與您在使用NCover的分析單元測試用例覆蓋所有的假設)。
  4. 從下拉菜單中選擇NCover並點擊Link with TypeMock Isolator

通過此TypeMock Isolator將被配置爲剖析單元測試以及由此,我認爲你的TypeMock禁用的問題將得到解決,我希望。

編輯:

對不起,我錯了點。如果您在構建中使用像NCover這樣的分析器,以上內容將對您有所幫助。

你應該使用下面的MSBuild使用MSTest的和TypeMock運行測試:

<?xml version="1.0" encoding="utf-8"?> 
<Project DefaultTargets="RunTests" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 

    <UsingTask TaskName="NCover.MSBuildTasks.NCover" AssemblyFile="C:\Program Files\NCover\Build Task Plugins\NCover.MSBuildTasks.dll" /> 
    <Import Project ="C:\Program Files (x86)\Typemock\Isolator\6.1\TypeMock.MSBuild.Tasks" /> 

    <PropertyGroup> 
     <MSTest>"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe"</MSTest>  
    </PropertyGroup> 


    <Target Name ="RunTests"> 
     <TypeMockStart Target="3.5" /> 
     <Exec ContinueOnError="true" Command='$(MSTest) /noisolation "/testcontainer:C:\continuousintegration\root\CTM_VPOFFICEClassLibraries\CTM.VPOffice\CTM.VPOffice Unit Testing\bin\Release\CTM.VPOffice Unit Testing.dll"' /> 
     <TypeMockStop /> 
    </Target> 
</Project> 

你可以忽略NCover相關的東西在上面的示例中和忽略的隔離器的配置步驟,如果你不具備在構建過程中測試分析。

+0

我有疑問,應該創建一個新的項目文件並將上面的代碼添加到它,或者我應該將此代碼附加到existin測試項目文件 – rajansoft1

+0

您不應將其附加到* .csproj文件。我想你有一個不同的MSBuild項目文件由TeamCity構建使用,該構建又在內部使用* .csproj或* .sln文件構建。在這種情況下,您可以將其添加到該外部MSBuild項目文件。如果沒有,請添加一個,因爲我覺得這是很好的篡改* .csproj文件。 – RinoTom