【问题标题】:TFS Build - Sending MSBuild Proj Values into the vstest runtimeTFS 构建 - 将 MSBuild Proj 值发送到 vstest 运行时
【发布时间】:2016-05-24 07:57:33
【问题描述】:

我们有在TFS Build process 期间构建和运行的单元测试。这是一个非常大的项目,构建时间很复杂。 msbuild .proj 文件中使用了一些参数,这些参数会传递给子项目等。

有时单元测试运行时需要其中一些 .proj 参数(只能在构建时知道)才能正常运行。

我的前任通过在构建时使用单元测试项目的 vcxproj 文件中的构建后事件(例如 ECHO SomethingINeedToKnow=True >> somefile )创建一个文件来管理此问题。

然后在运行时,AssemblyInitialize 事件上的单元测试 dll 会查找此文件并解析所需的值,将它们注入测试运行时。真的很巧妙。

但是,高级架构师不喜欢 hack,他们希望一切都以 Microsoft 的方式完成,如果可能的话。

所以我的问题是这样的:是否有一种本机的、Microsoft 认可的方式将 vcxproj 在构建时继承的值传递到单元测试运行时?

我认为答案是否定的,当前的解决方案是最好的解决方案,但我想确定一下。

附言被测代码通常是非托管 C++,而单元测试项目是托管 C++ using namespace Microsoft::VisualStudio::TestTools::UnitTesting(我相信是 10.0)

【问题讨论】:

  • 我不认为这是特定于测试的,这实际上是一个关于如何将参数传递给任何外部进程的问题,因为单元测试可能由 mstest.exe 执行。不幸的是,vanilla exec 任务似乎没有办法为您正在启动的进程设置环境变量。最后生成一个批处理文件可能是最好的方法。

标签: c++ unit-testing tfs msbuild tfsbuild


【解决方案1】:

我知道提供Run Time Parameters to Tests 可以通过VNEXT 构建来实现。不确定如何将 proj 值发送到 vstest 运行时。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-15
    • 1970-01-01
    • 2013-11-25
    • 2011-03-22
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    相关资源
    最近更新 更多