![](/img/trans.png)
[英]How to run some NUnit tests only in azure devops CI env but not locally
[英]How to run some tests only in azure devops CI env but not locally
我想指定一些長時間運行的c#項目xUnit測試,使其僅在azure devops CI管道中運行,而不是在本地Visual Studio中(vs2019)單擊“全部運行”時運行。 是否有這種行為的“最佳實踐”?
我試着制作一個測試播放列表,然后在本地運行而不是Run All
,但是每次我添加新測試時,都需要更新列表,這很容易出錯。
FactAttribute
的Skip
屬性是可重寫的-您可以創建FactWhenAttribute
並檢查環境變量
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.