首页 > 解决方案 > VS2019 MSTest 输出被截断,通过 Copy All 获取所有输出的选项不再起作用?

问题描述

在 Visual Studio 2019 中,我突然注意到,如果测试生成大量输出到标准输出或标准错误,则无法再完整复制输出。在过去的版本中,输出将在测试资源管理器视图中被截断,但您可以右键单击并选择“全部复制”以将整个输出复制到剪贴板(此时您可以将其粘贴到某些内容中并查看它),实际上输出视图将包含这个事实(它读取类似“输出截断,查看所有输出选择全部复制”)。在 VS 2019 中,情况似乎不再如此 - 输出被截断,并且 Copy All 选项复制截断的输出。

是否仍然可以捕获测试产生的所有输出,或者至少在 VS 2019 中增加截断之前捕获的输出量?

生成一些输出的非常简单的测试:

    [TestMethod]
    public void TestMethod1()
    {
        for (int x = 1; x < 2000; x++)
        {
            Console.Write($"This is iteration {x}. ");
            Console.Error.Write($"This is iteration {x}. ");
            if (x % 10 == 0) { Console.WriteLine(); Console.Error.WriteLine(); }
        }
    }

运行测试后的测试资源管理器视图:

在测试资源管理器中显示截断输出的视图

选择“全部复制”后剪贴板的内容:

Test Name:  TestMethod1
Test FullName:  TestTruncation.TestTruncation.UnitTest1.TestMethod1
Test Source:    C:\Users\fmillion\source\repos\TestTruncation\TestTruncation\UnitTest1.cs : line 10
Test Outcome:   Passed
Test Duration:  0:00:00

Test Name:  TestMethod1
Test Outcome:   Passed
Result StandardOutput:  
This is iteration 1. This is iteration 2. This is iteration 3. This is iteration 4. This is iteration 5. This is iteration 6. This is iteration 7. This is iteration 8. This is iteration 9. This is iteration 10. 
This is iteration 11. This is iteration 12. This is iteration 13. This is iteration 14. This is iteration 15. This is iteration 16. This is iteration 17. This is iteration 18. This is iteration 19. This is iteration 20. 
This is iteration 21. This is iteration 22. This is iteration 23. This is iteration 24. This is iteration 25. This is iteration 26. This is iteration 27. This is iteration 28. This is iteration 29. This is iteration 30. 
This is iteration 31. This is iteration 32. This is iteration 33. This is iteration 34. This is iteration 35. This is iteration 36. This is iteration 37. This is iteration 38. This is iteration 39. This is iteration 40. 
This is iteration 41. This is iteration 42. This is iteration 43. This is iteration 44. This is iteration 45. This is iteration 46. This is iteration 47. This is iteration 48. This is iteration 49. This is iteration 50. 
This is iteration 51. This is iteration 52. This is iteration 53. This is iteration 54. This is iteration 55. This is iteration 56. This is iteration 57. This is iteration 58. This is iteration 59. This is iteration 60. 
This is iteration 61. This is iteration 62. This is iteration 63. This is iteration 64. This is iteration 65. This is iteration 66. This is iteration 67. This is iteration 68. This is iteration 69. This is iteration 70. 
This is iteration 71. This is iteration 72. This is iteration 73. This is iteration 74. This is iteration 75. This is iteration 76. This is iteration 77. This is iteration 78. This is iteration 79. This is iteration 80. 
This is iteration 81. This is iteration 82. This is iteration 83. This is iteration 84. This is iteration 85. This is iteration 86. This is iteration 87. This is iteration 88. This is iteration 89. This is iteration 90. 
This is iteration 91. This is iteration 92. This is iteration 93. This is iteration 94. This is iteration 95. This is iteration 96. This is iteration 97. This is iteration 98. This is iteration 99. This is iteration 100. 
This is iteration 101. This is iteration 102. This is iteration 103. This is iteration 104. This is iteration 105. This is iteration 106. This is iteration 107. This is iteration 108. This is iteration 109. This is iteration 110. 
This is iteration 111. This is iteration 112. This is iteration 113. This is iteration 114. This is iteration 115. This is iteration 116. This is iteration 117. This is iteration 118. This is iteration 119. This is iteration 120. 
This is iteration 121. This is iteration 122. This is iteration 123. This is iteration 124. This is iteration 125. This is iteration 126. This is iteration 127. This is iteration 128. This is iteration 129. This is iteration 130. 
This is iteration 131. This is iteration 132. This is iteration 133. This is iteration 134. This is iteration 135. This is iteration 136. This is iteration 137. This is iteration 138. This is iteration 139. This is iteration 140. 
This is iteration 141. This is iteration 142. This is iteration 143. This is iteration 144. This is iteration 145. This is iteration 146. This is iteration 147. This is iteration 148. This is iteration 149. This is iteration 150. 
This is iteration 151. This is iteration 152. This is iteration 153. This is iteration 154. This is iteration 155. This is iteration 156. This is iteration 157. This is iteration 158. This is iteration 159. This is iteration 160. 
This is iteration 161. This is iteration 162. This is iteration 163. This is iteration 164. This is iteration 165. This is iteration 166. This is iteration 167. This is iteration 168. This is iteration 169. This is iteration 170. 
This is iteration 171. This is iteration 172. This is iteration 173. This is iteration 174. This is iteration 175. This is iteration 176. This is iteration 177. Thi< Truncated >
Result StandardError:   
This is iteration 1. This is iteration 2. This is iteration 3. This is iteration 4. This is iteration 5. This is iteration 6. This is iteration 7. This is iteration 8. This is iteration 9. This is iteration 10. 
This is iteration 11. This is iteration 12. This is iteration 13. This is iteration 14. This is iteration 15. This is iteration 16. This is iteration 17. This is iteration 18. This is iteration 19. This is iteration 20. 
This is iteration 21. This is iteration 22. This is iteration 23. This is iteration 24. This is iteration 25. This is iteration 26. This is iteration 27. This is iteration 28. This is iteration 29. This is iteration 30. 
This is iteration 31. This is iteration 32. This is iteration 33. This is iteration 34. This is iteration 35. This is iteration 36. This is iteration 37. This is iteration 38. This is iteration 39. This is iteration 40. 
This is iteration 41. This is iteration 42. This is iteration 43. This is iteration 44. This is iteration 45. This is iteration 46. This is iteration 47. This is iteration 48. This is iteration 49. This is iteration 50. 
This is iteration 51. This is iteration 52. This is iteration 53. This is iteration 54. This is iteration 55. This is iteration 56. This is iteration 57. This is iteration 58. This is iteration 59. This is iteration 60. 
This is iteration 61. This is iteration 62. This is iteration 63. This is iteration 64. This is iteration 65. This is iteration 66. This is iteration 67. This is iteration 68. This is iteration 69. This is iteration 70. 
This is iteration 71. This is iteration 72. This is iteration 73. This is iteration 74. This is iteration 75. This is iteration 76. This is iteration 77. This is iteration 78. This is iteration 79. This is iteration 80. 
This is iteration 81. This is iteration 82. This is iteration 83. This is iteration 84. This is iteration 85. This is iteration 86. This is iteration 87. This is iteration 88. This is iteration 89. This is iteration 90. 
This is iteration 91. This is iteration 92. This is iteration 93. This is iteration 94. This is iteration 95. This is iteration 96. This is iteration 97. This is iteration 98. This is iteration 99. This is iteration 100. 
This is iteration 101. This is iteration 102. This is iteration 103. This is iteration 104. This is iteration 105. This is iteration 106. This is iteration 107. This is iteration 108. This is iteration 109. This is iteration 110. 
This is iteration 111. This is iteration 112. This is iteration 113. This is iteration 114. This is iteration 115. This is iteration 116. This is iteration 117. This is iteration 118. This is iteration 119. This is iteration 120. 
This is iteration 121. This is iteration 122. This is iteration 123. This is iteration 124. This is iteration 125. This is iteration 126. This is iteration 127. This is iteration 128. This is iteration 129. This is iteration 130. 
This is iteration 131. This is iteration 132. This is iteration 133. This is iteration 134. This is iteration 135. This is iteration 136. This is iteration 137. This is iteration 138. This is iteration 139. This is iteration 140. 
This is iteration 141. This is iteration 142. This is iteration 143. This is iteration 144. This is iteration 145. This is iteration 146. This is iteration 147. This is iteration 148. This is iteration 149. This is iteration 150. 
This is iteration 151. This is iteration 152. This is iteration 153. This is iteration 154. This is iteration 155. This is iteration 156. This is iteration 157. This is iteration 158. This is iteration 159. This is iteration 160. 
This is iteration 161. This is iteration 162. This is iteration 163. This is iteration 164. This is iteration 165. This is iteration 166. This is iteration 167. This is iteration 168. This is iteration 169. This is iteration 170. 
This is iteration 171. This is iteration 172. This is iteration 173. This is iteration 174. This is iteration 175. This is iteration 176. This is iteration 177. Thi< Truncated >

标签: visual-studio-2019mstest

解决方案


我根据这篇文章找到了解决方法:
https ://developercommunity.visualstudio.com/content/problem/1042000/regression-test-explorer-copy-all-does-not-give-fu.html

您只需添加系统环境变量:

_TestExplorer_TestResultMessageMaxLength_ = [your size in bytes]

推荐阅读