1<!DOCTYPE html> 2<html> 3 <head> 4 <meta charset="utf-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=Edge"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 8 <link href="/assets/bootstrap/bootstrap.css" rel="stylesheet" /> 9 <link href="https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;700&family=Roboto+Slab:wght@400;700&family=Roboto:ital,wght@0,300;0,400;0,700;1,300;1,400;1,700&display=swap" rel="stylesheet" data-no-mirror> 10 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/themes/prism.css"> 11 <link href="/assets/css/theme.css" rel="stylesheet" /> 12 <link href="/assets/css/styles.css" rel="stylesheet" /> 13 <link href="/css/overrides.css" rel="stylesheet" /> 14 15
15<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
15 16
16<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
16 17
17<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
17 18
18<script src="https://kit.fontawesome.com/a1cad7ed9a.js" crossorigin="anonymous" data-no-mirror></script>
18 19
19<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/mermaid.min.js"></script>
19 20
20<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/svg-pan-zoom.min.js"></script>
20 21
21<script src="https://cdn.jsdelivr.net/npm/[email protected]/components/prism-core.min.js"></script>
21 22
22<script src="https://cdn.jsdelivr.net/npm/[email protected]/plugins/autoloader/prism-autoloader.min.js" data-no-mirror></script>
22 23
23<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/quicklink.umd.js"></script>
23 24 25 <!-- Lunr search --> 26 27 28 29 30 31 <title>TestCentric - Blog</title> 32 </head> 33 <body class="d-flex flex-column"> 34 <div class="flex-grow-1 d-flex flex-column"> 35 <div class="bg-nav"> 36 <div class="container-xl py-3"> 37 <div class="row"> 38 <div class="offset-lg-2 col-12 col-lg-8 px-0"> 39 <nav class="navbar navbar-expand-md navbar-light align-items-start"> 40 <a class="navbar-brand" href="/"> 41 <img id="logo" src="/img/NewTestCentricLogo.png" alt="TestCentric"> 42 </a> 43 <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapse-topnav" aria-controls="collapse-topnav" aria-expanded="false" aria-label="Toggle navigation"> 44 <span class="navbar-toggler-icon"></span> 45 </button> 46 <div id="collapse-topnav" class="collapse navbar-collapse flex-wrap"> 47 <ul class="navbar-nav mr-auto"> 48 49 </ul> 50 <ul class="navbar-nav"> 51 <li class="nav-item"> 52 <a class="nav-link" href="/testcentric-runner">TestCentric Runner</a> 53 </li> 54 <li class="nav-item"> 55 <a class="nav-link" href="/tc-lite">TC-Lite Framework</a> 56 </li> 57 <li class="nav-item"> 58 <a class="nav-link" href="/contributing">Contributing</a> 59 </li> 60 <li class="nav-item"> 61 <a class="nav-link" href="/blog">Blog</a> 62 </li> 63 <li class="nav-item"> 64 <a class="nav-link" href="/github">GitHub</a> 65 </li> 66 67 68 </ul> 69 </div> 70</nav> 71 </div> 72 </div> 73 </div> 74 </div> 75 76 <div class="flex-grow-1 d-flex flex-column"> 77 <!-- Titlebar --> 78 <div id="titlebar" class="py-4"> 79 <div class="container-xl"> 80 <div class="row"> 81 <div class="offset-lg-2 col-12 col-lg-8 px-3 px-lg-0 w-100 d-flex flex-wrap align-items-end"> 82 <div class="flex-grow-1"> 83 <div class="breadcrumbs d-flex flex-column flex-md-row text-break"> 84 85 </div> 86 <div class="text-white m-0 text-break title"> 87 88Blog 89 </div> 90 </div> 91 </div> 92 </div> 93 </div> 94 </div> 95 <!-- Under title --> 96 <div id="undertitle"> 97 <div class="container-xl"> 98 <div class="row"> 99 <div class="offset-lg-2 col-12 col-lg-8 bg-white"> 100 </div> 101 <div class="col-lg-2 d-none d-lg-block"> 102 </div> 103 </div> 104 </div> 105 </div> 106 107 <!-- Body --> 108 <div class="flex-grow-1 d-flex flex-column"> 109 <div class="container-xl flex-grow-1 d-flex flex-column"> 110 <div class="row flex-grow-1 align-items-stretch"> 111 <div id="content" class="offset-lg-2 col-12 col-lg-8 p-4 pt-md-0 bg-white"> 112<div class="container-sm-height"> 113 <div class="row row-sm-height"> 114 <div class="col-md-9 right-border col-sm-height"> 115 <div class="post-preview"> 116 <h2 class="post-title"><a href="/blog/testcentric-beta4-release">TestCentric Beta4 Release</a></h2> 117 <p class="post-meta">Published: Saturday, December 2, 2023</p> 118<p>In an <a href="testcentric-beta2-and-beyond.html">earlier post</a>, I talked about plans for moving ahead with TestCentric, separating it more completely from its remaining dependencies on NUnit. I predicted that the beta3 release would probably not have any new features, being concerned primarily with internal
118changes in how the TestCentric runner and engine were structured. That turned out to be true.</p> <p class="small"><a href="/blog/testcentric-beta4-release">Read more...</a></p> 119 </div> 120 <div class="post-preview"> 121 <h2 class="post-title"><a href="/blog/testcentric-beta2-and-beyond">TestCentric Beta 2 and Beyond</a></h2> 122 <p class="post-meta">Published: Saturday, September 16, 2023</p> 123<p>I released version 2.0.0-beta2 of the TestCentric Runner about two weeks ago. This release is both an ending and a beginning. On the one hand, it marks the end of a particular phase of development. On the other, it will serve as the basis for a fairly significant change in future releases.</p> 124<p>Specifically, this will be the last release in which we try to keep the code close to that of the NUnit engine and console runner.</p> <p class="small"><a href="/blog/testcentric-beta2-and-beyond">Read more...</a></p> 125 </div> 126 <div class="post-preview"> 127 <h2 class="post-title"><a href="/blog/net80-pluggable-agent">TestCentric .NET 8.0 Pluggable Agent</a></h2> 128 <p class="post-meta">Published: Friday, February 24, 2023</p> 129<p>Now that the .NET 8.0 preview is out, many folks will want to experiment with 130it and possibly run tests under the TestCentric GUI. A newly released extension, 131the .NET 8.0 Pluggable Agent, makes this possible.</p> <p class="small"><a href="/blog/net80-pluggable-agent">Read more...</a></p> 132 </div> 133 <div class="post-preview"> 134 <h2 class="post-title"><a href="/blog/moving-to-testcentric-2.0">Moving to TestCentric 2.0</a></h2> 135 <p class="post-meta">Published: Saturday, March 5, 2022</p> 136<p>NUnit 2.0 through 2.7 was delivered as an all-inclusive package: test framework, 137console runner and GUI runner. With NUnit 3 that changed. The framework and 138console runner became separate packages and the GUI was no longer developed.</p> <p class="small"><a href="/blog/moving-to-testcentric-2.0">Read more...</a></p> 139 </div> 140 </div> 141 </div> 142</div> 143 </div> 144 <div class="col-lg-2 p-md-0 m-md-0 bg-body"> 145 <div id="right-sidebar" class="sidebar px-0 px-md-3 pt-3"> 146 </div> 147 </div> 148 </div> 149 </div> 150 </div> 151 </div> 152 </div> 153 154 <!-- Footer --> 155 <div id="footer" class="p-3 text-white"> 156 <div class="container-xl"> 157 <div class="row"> 158 <div class="offset-lg-2 col-12 col-lg-8"> 159 <div class="pt-2 font-size-sm text-muted text-center"> 160 Generated By <a class="text-muted" href="https://statiq.dev">Statiq</a> 161 </div> 162 </div> 163</div> 164 </div> 165 </div> 166 167 <!-- Scripts --> 168
168<script> 169 $(document).ready(function() { 170 quicklink.listen(); 171 172 // Bootstrap tooltips 173 $('[data-toggle="tooltip"]').tooltip(); 174 175 // Keeps the sidebars in view on wider viewports 176 let left = null; 177 let leftParent = null; 178 let right = null; 179 let rightParent = null; 180 function stickSidebars() 181 { 182 if (left == null) { 183 left = $('#left-sidebar'); 184 right = $('#right-sidebar'); 185 } 186 if (left.length) { 187 if (window.innerWidth >= 768) { 188 if (leftParent == null) { 189 leftParent = left.parent()[0]; 190 } 191 if (leftParent) { 192 let leftRect = leftParent.getBoundingClientRect(); 193 stickSidebar(left, leftRect); 194 } 195 } else { 196 left.css('position', 'relative'); 197 if (left.css('bottom') != 0) { 198 left.css('bottom', '0'); 199 } 200 } 201 } 202 if (right.length) { 203 if (window.innerWidth >= 768) { 204 if (rightParent == null) { 205 rightParent = right.parent()[0]; 206 } 207 if (rightParent) { 208 let rightRect = rightParent.getBoundingClientRect(); 209 stickSidebar(right, rightRect); 210 } 211 } else { 212 right.css('position', 'relative'); 213 if (right.css('bottom') != 0) { 214 right.css('bottom', '0'); 215 } 216 } 217 } 218 } 219 function stickSidebar(sidebar, rect) { 220 // Bottom 221 if (rect.bottom > window.innerHeight) { 222 sidebar.css('bottom', rect.bottom - window.innerHeight + "px"); 223 } else { 224 sidebar.css('bottom', 0); 225 } 226 // Top 227 if (rect.top < 0) { 228 sidebar.css('position', 'sticky'); 229 } else { 230 sidebar.css('position', 'absolute'); 231 } 232 } 233 $(window).on("load", function() { 234 stickSidebars(); 235 }); 236 $(window).scroll(function() { 237 stickSidebars(); 238 }); 239 $(window).resize(function() { 240 stickSidebars(); 241 }) 242 243 // Mermaid diagrams 244 mermaid.initialize( 245 { 246 flowchart: 247 { 248 useMaxWidth: false 249 }, 250 startOnLoad: false, 251 cloneCssStyles: false 252 }); 253 mermaid.init(undefined, ".mermaid"); 254 255 // Remove the max-width setting that Mermaid sets 256 var mermaidSvg = $('.mermaid svg'); 257 mermaidSvg.addClass('img-fluid'); 258 mermaidSvg.css('max-width', ''); 259 260 // Make it scrollable 261 var target = document.querySelector(".mermaid svg"); 262 if(target !== null) 263 { 264 var panZoom = window.panZoom = svgPanZoom(target, { 265 zoomEnabled: true, 266 controlIconsEnabled: true, 267 fit: true, 268 center: true, 269 maxZoom: 20, 270 zoomScaleSensitivity: 0.6 271 }); 272 273 // Do the reset once right away to fit the diagram 274 panZoom.resize(); 275 panZoom.fit(); 276 panZoom.center(); 277 278 $(window).resize(function(){ 279 panZoom.resize(); 280 panZoom.fit(); 281 panZoom.center(); 282 }); 283 } 284 }); 285 </script>
285 286 287 288 289 290 </body> 291</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.