Following up:

I couldn't get the R# structural search and replace working properly. Though it *should* have worked, it's pretty buggy and hard to use in its implementation. I couldn't get it working correctly so I abandoned it.

Instead I wrote a piece of Roslyn code which did the work for me. Roslyn has its own set of problems, but I was able to get an implementation working successfully. I was also able to use Roslyn to do a couple of other Nunit2->Nunit3 conversions which were needed.

The Roslyn app that I wrote is internal company-owned code, so I'm not able to post it at the moment. Maybe someday I'll get permission to put it up on GitHub or something.
_________________________
Tony Fabris