代码改变世界

Convert MSTest to Nunit

  敏捷的水  阅读(2525)  评论(1编辑  收藏  举报

今天想在自动集成服务器上用MSTest,但遗憾的是MSTest.exe不能使用目录,命名空间等,因此需要将MSTest转换为Nunit1.

1. 首先移除MSTest的程序集,引入Nunit.Framework.dll

2.然后使用如下Ruby脚本.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
all_files= Dir[File.join("D:", "UnitTest/**/**/**")];
all_files.each { |x|
  if x.to_s().include?(".cs")
    begin
    puts x.to_s
    f = File.open(x.to_s, "r+")
    content=""
    f.each { |line| content+=line }
 
   s=content.gsub(/\[TestMethod\]/, "[Test]").gsub(/\[TestMethod\(\)\]/, "[Test]").
            gsub(/\[TestClass\]/, "[TestFixture]").gsub(/\[TestClass\(\)\]/, "[TestFixture]").
            gsub(/\[ClassInitialize\]/, "[TestFixtureSetUp]").gsub(/\[ClassInitialize\(\)\]/, "[TestFixtureSetUp]").
            gsub(/\[ClassCleanup\]/, "[TestFixtureTearDown]").gsub(/\[ClassCleanup\(\)\]/, "[TestFixtureTearDown]").
            gsub(/\[TestInitialize\]/, "[SetUp]").gsub(/\[TestInitialize\(\)\]/, "[SetUp]").
            gsub(/\[TestCleanUp\]/, "[TearDown]").gsub(/\[TestCleanUp\(\)\]/, "[TearDown]").
            gsub(/\[AssemblyInitialize\]/, ""). gsub(/\[AssemblyInitialize\(\)\]/, "").
            gsub(/\[AssemblyCleanUp\]/, "").gsub(/\[AssemblyCleanUp\(\)\]/, "").
            gsub(/namespace\s+?/,"using NUnit.Framework;\n\nnamespace ")
    f.close
    File.delete(x)
    new= File.new(x, "w+")
    new.puts s
    new.close
    s=""
       rescue =>e
    end
  end
}
1
3. 移除MSTest的部分特性的东西,如TestContext等,这个应该很少了
1
然后,就顺利转换成功了
1
  
1
  
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
历史上的今天:
2009-10-14 敏捷团队的考核
点击右上角即可分享
微信分享提示