@bradwilson@mastodon.social
@bradwilson@mastodon.social avatar

bradwilson

@bradwilson@mastodon.social

#Code #Motorcycles #Music #BoardGames #VideoGames #Photography #AntiFascist #AntiRacist #PostTheist #Feminist #EV #GreenEnergy #BlackLivesMatter | https://dotnet.social/@xunit's caretaker | He/him | 0.00115 miles tall

Previously: GitHub, Microsoft, and others.
Now: Living that retired life.

This profile is from a federated server and may be incomplete. Browse more on the original instance.

jitterted, to random
@jitterted@sfba.social avatar

On today's solo stream, I was doing my as usual, and, because I use Predictive Test-Driven Development (see https://ted.dev/articles/2021/03/05/clarifying-the-goal-of-behavior-change/), I was able to avoid writing code that wouldn't get the test to pass.

Why? Because 3 separate times, I predicted how the test should fail, and it failed differently! They failed in the unexpected way because I had either written the test setup incorrectly, or misunderstood a library method¹.

Had I just looked out for a failing test, I would have started writing code to make it pass, and been disappointed that it didn't pass when I was done.

--
¹ Turns out Java's String.indent(4) normalizes line endings, meaning it will add a line ending to the last line, even if it didn't have one before! Surprise!

bradwilson,
@bradwilson@mastodon.social avatar

@jitterted I have always thought the circle diagram for sent the wrong message to new practitioners. Refactoring should always start and end in green. If you refactor and things go red you’ve done something else other than refactoring.

peterritchie, to random
@peterritchie@mastodon.social avatar

At what point does a software development "stack" become a "tower?"

bradwilson,
@bradwilson@mastodon.social avatar

@peterritchie It helps to have an astronaut architect. Ivory paint optional. 😂

Migueldeicaza, to random
@Migueldeicaza@mastodon.social avatar

I have now been shadow-banned on Twitter for the fourth time over my support for Palestinians under attack.

It is still an important forum to spread news, hence why I am still spreading important news there.

I am not sure that I reach a lot of uninformed in here as I do there, but I will bring some toots here.

bradwilson,
@bradwilson@mastodon.social avatar

@georgeperez @Migueldeicaza Posting with, and following, hashtags are critical to share and discover information outside your circle, IMO.

bradwilson, to vscode
@bradwilson@mastodon.social avatar

I am extraordinarily annoyed by the fact that appears to be enabled by default now in and I can't find any way to turn it off.

bradwilson,
@bradwilson@mastodon.social avatar

@KirillOsenkov Linux and Windows

bradwilson,
@bradwilson@mastodon.social avatar

@JoeyRobichaud Does Intellicode now offer full function implementation suggestions?

bradwilson, to plex
@bradwilson@mastodon.social avatar

I assume by this point the Plex app on NVIDIA Shield will never support full channels when playing 5.1 FLAC. 😔

kpwags, to random
@kpwags@hachyderm.io avatar

Wanted to get 1,000 words written tonight, but only managed 500 or so…oh well

bradwilson,
@bradwilson@mastodon.social avatar

@kpwags Small victories are still victories. 😊

bradwilson, to dotnet
@bradwilson@mastodon.social avatar

On a separate (but mildly related note): it's probably time to delete the TestDriven.NET support from xUnit.net v3. It's basically been abandoned for several years now and has never supported VS 2022.

I'd keep it even if I was the only one using it (and I likely was), but I can't stay on VS 2019 even if I ignored the end of mainstream support, since the latest version of .NET it supports is .NET Core 3.1. 💔

bradwilson, to random
@bradwilson@mastodon.social avatar

I've been organizing my dependencies for @xunit v3 so I can minimize them (anything that doesn't ship in .NET itself is a potential compatibility clash with library versions that developers want to use).

I'm not that worried about System.Collections.Immutable or IAsyncDisposable having breaking changes across major versions. System.Text.Json, on the other hand, feels like potential danger territory. The alternative of writing even a very feature-limited JSON parser makes me uncomfortable.

bradwilson,
@bradwilson@mastodon.social avatar

This problem is much worse in v2 because you build DLLs not EXEs, so there's no compiler to help resolve dependencies between us and your tests. App domains help in .NET Framework, but aren't available on .NET Core/.NET.

Even with the eased restrictions, I'm still a little nervous about it. We had to stop using JSON.NET because the author of JSON.NET wanted to test JSON.NET with xUnit.net and couldn't, because our old version "won" in the loading lottery.

bradwilson,
@bradwilson@mastodon.social avatar

Our solution at the time was that we nicked this code from very early .NET Core (maybe even back when it was called Project K, as I think they were using it for parsing the old JSON-based project files before they reverted back to using MSBuild). https://github.com/xunit/xunit/blob/v2/src/common/Json.cs

bradwilson,
@bradwilson@mastodon.social avatar

I don't have a problem doing my own serialization. It doesn't have to be an open ended problem, and the wire format of JSON is quite simple. Generating legal JSON is an order of magnitude (or more) simpler than parsing it.

bradwilson,
@bradwilson@mastodon.social avatar

@Josh_Gallagher We use ILRepack for executables. Generally repacking things changes their identity, but in this case changing the identity of System.Text.Json's types probably isn't a big issue. It's something to consider.

bradwilson, (edited ) to dotnet
@bradwilson@mastodon.social avatar

If I'm writing an analyzer to say "stop doing X in xUnit.net v2 because it's been removed in v3", should that be INFO or WARNING by default?

bradwilson,
@bradwilson@mastodon.social avatar

Damn it, I edited the post to clarify wording and the poll (and all the votes) disappeared.

video/mp4

bradwilson, to random
@bradwilson@mastodon.social avatar

I really messed up with a dumb bug on one of the new analyzers in @xunit that I shipped yesterday. At least it's an INFO level analyzer, but wow. Just... can't believe I did it. 😭😂😭

thurrott, to random
@thurrott@twit.social avatar
bradwilson,
@bradwilson@mastodon.social avatar

@thurrott How exciting! More sponsored content! 😭

vwbusguy, to random
@vwbusguy@mastodon.online avatar

My first family computer was an Osborne One. Now, let me hear about yours.

bradwilson,
@bradwilson@mastodon.social avatar

@vwbusguy Commodore VIC-20

bradwilson, to random
@bradwilson@mastodon.social avatar

Time to ship a new version of @xunit v2. It's been a month, and (barely) enough has stacked up to warrant it.

bradwilson,
@bradwilson@mastodon.social avatar

Wait, it's been two months.

bradwilson,
@bradwilson@mastodon.social avatar

I must say, I prefer this pace when I don't feel like I need to push a release out every week or two.

I guess this means most of the low hanging fruit from the assertion library re-write have probably been found at this point.

Time to get back to working on v3 in earnest!

bradwilson, to CSharp
@bradwilson@mastodon.social avatar

I want to see if it's possible to replace runtime reflection in @xunit v3 with source generators (for better performance and to support NativeAOT), but I think I've already hit the first blocking point: no support for ? Only and ?

bradwilson,
@bradwilson@mastodon.social avatar

@KirillOsenkov @xunit You think I can completely remove all the reflection required for discovering and running tests with this?

bradwilson,
@bradwilson@mastodon.social avatar

@mhutch @KirillOsenkov @mihamarkic @xunit I think in my case I'm going to need Roslyn because I need to inspect the source to do the generation (the simplest explanation is: I need a list of all methods in the project that are decorated with an attribute, so that I can bypass the need to find them via reflection at runtime, in order to support NativeAOT). I'm certainly going to investigate every option, though!

bradwilson,
@bradwilson@mastodon.social avatar

@mhutch @KirillOsenkov @mihamarkic @xunit (this time posted from the correct account 😂)

Funny historical fact: Jim and I created xUnit.net while working on CodePlex, so we were obviously the first internal adopters, but the first team outside of us that adopted xUnit.net internally was... Roslyn!

  • All
  • Subscribed
  • Moderated
  • Favorites
  • provamag3
  • kavyap
  • DreamBathrooms
  • cisconetworking
  • magazineikmin
  • InstantRegret
  • Durango
  • thenastyranch
  • Youngstown
  • rosin
  • slotface
  • mdbf
  • khanakhh
  • tacticalgear
  • JUstTest
  • everett
  • modclub
  • Leos
  • cubers
  • ngwrru68w68
  • ethstaker
  • osvaldo12
  • GTA5RPClips
  • anitta
  • megavids
  • normalnudes
  • tester
  • lostlight
  • All magazines