簡體   English   中英

如何僅在Azure Devops CI env中而非本地運行一些測試

[英]How to run some tests only in azure devops CI env but not locally

我想指定一些長時間運行的c#項目xUnit測試,使其僅在azure devops CI管道中運行,而不是在本地Visual Studio中(vs2019)單擊“全部運行”時運行。 是否有這種行為的“最佳實踐”?

我試着制作一個測試播放列表,然后在本地運行而不是Run All ,但是每次我添加新測試時,都需要更新列表,這很容易出錯。

FactAttributeSkip屬性是可重寫的-您可以創建FactWhenAttribute並檢查環境變量

@Joseph Woodward這篇文章中的示例

 public sealed class IgnoreOnAppVeyorLinuxFact : FactAttribute { public IgnoreOnAppVeyorLinuxFact() { if(RuntimeInformation.IsOSPlatform(OSPlatform.Linux) && IsAppVeyor()) { Skip = "Ignore on Linux when run via AppVeyor"; } } private static bool IsAppVeyor() => Environment.GetEnvironmentVariable("APPVEYOR") != null; } 

AzureDevOps定義了一些環境變量 我將TF_BUILD與Ruben Bartelinks答案結合使用。

如果腳本由構建任務運行,則設置為True。

此變量是代理作用域的。 它可以用作腳本中的環境變量和構建任務中的參數,但不能用作構建號的一部分或用作版本控制標簽。

假定您的構建管道是使用Release構建配置而不是使用Debug構建配置來構建的,則可以在[Fact]屬性#IF !DEBUG使用#IF !DEBUG預處理程序指令。

例如:

#if !DEBUG
[Fact]
#endif
public void YourTestMethod()
{
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM