小编aer*_*hov的帖子

在Azure Pipeline中的C#项目上测试NuGet程序包安装

作为用于NuGet程序包创建的CI过程的一部分,是否可以将新创建​​的程序包安装到位于存储库中的项目中?这样就可以测试安装了。使用Visual Studio UI很容易,但是如何在新创建的Azure管道工作程序上自动进行呢?

powershell visual-studio nuget azure-devops azure-pipelines

6
推荐指数
1
解决办法
185
查看次数

Visual Studio 2013 NuGet包还原在命令行中不起作用(不是msbuild而是vcvarsall.bat)

Visual Studio 2013引入了没有MSBuild的的包恢复方法,现在不推荐使用旧的Enable NuGet Package Restore方法.

迁移项目后,如Nuget文档中所述,在VisualStudio包中进行构建还原时,但使用命令行VisulStudio运行构建时,不会还原事件vcvarsall.bat包.

我错过了什么吗?


结论

好吧,如果从命令行调用Visual Studio,则不会调用包还原.使用nuget.exe手动包恢复

nuget restore Solution.sln
Run Code Online (Sandbox Code Playgroud)

要使此特定行工作,您需要在系统范围内安装NuGet并将其二进制文件夹的路径添加到PATH环境变量中

.net msbuild visual-studio nuget nuget-package-restore

4
推荐指数
1
解决办法
1181
查看次数

ReaderWriterLockSlim和计时器

我对ReaderWriterLockSlim感到沮丧并且延迟了ExitWriteLock.为什么WriteLock在定时器中发布回调?

var _lock = new ReaderWriterLockSlim();
_lock.EnterWriteLock();
Assert.AreEqual(true, _lock.IsWriteLockHeld);   // good

System.Threading.Timer timer = new Timer(state =>
{
    _lock.ExitWriteLock(); //throws exception that lock is not held
}, null, 1, -1);

Thread.Sleep(1000);
Assert.AreEqual(false, _lock.IsWriteLockHeld);
Run Code Online (Sandbox Code Playgroud)

.net c# multithreading readerwriterlockslim

2
推荐指数
1
解决办法
122
查看次数

Jenkins工作dsl和MSTest集成

Jenkins Job DSL插件是一种非常好的方式,可以在repo中存储CI配置,并在分支之间进行更改.

问题是 - 是否有一种自然或接近自然的方式来运行MSTest测试,解析结果并显示它们.

现在我做了一个powershell调用,但这只给了我日志,而不是UI集成.

def testSomeProjectJob =  job(testSomeProjectJobName) {
    steps { 
      powerShell("& ${vstest} '${root}/SomeProject/SomeProject.Tests/bin/Debug/SomeProject.Tests.dll' ")
    }
}
Run Code Online (Sandbox Code Playgroud)

可能有一个出版商或一个带模板的技巧,或者为JOB DSL编写插件的一些技巧


UPD:使用@daspilker回答,jenkins xUnit插件archiveXUnit的 MSTest和VSTest的最终脚本模板

  job('RunTests') {
      steps {
           // VSTEST
           powerShell("& ${vstest} 'path/to/Tests.dll' /logger:trx ")
           // Or MSBUILD
            powerShell("& ${msbuild} /testcontainer:'path/to/Tests.dll' ")
      }
      publishers {
        archiveXUnit {
          msTest {
            pattern('**/*.trx')
            // deleteOutputFiles()
          }
        }
      }
    }
Run Code Online (Sandbox Code Playgroud)

mstest jenkins jenkins-plugins jenkins-job-dsl jenkins-mstest

2
推荐指数
1
解决办法
851
查看次数