The simplest approach may be to use an anonymous delegate, however keep in mind that MSTest will treat this as a single test so it may be difficult to distinguish results for different cultures.
eg. Rough code for anonymous delegate approach.
public static class MultipleCultures
{
public static void Do(Action action, params CultureInfo[] cultures)
{
CultureInfo originalCulture = Thread.CurrentCulture;
try
{
foreach (CultureInfo culture in cultures)
{
Thread.CurrentCulture = culture;
try
{
action();
}
catch
{
Console.WriteLine("Failed while running test with culture '{0}'.", culture.Name);
throw;
}
}
}
finally
{
Thread.CurrentCulture = originalCulture;
}
}
}
[TestClass]
public class Fixture
{
[TestMethod]
public void Test()
{
MultipleCultures.Do(() =>
{
// test code...
}, CultureInfo.InvariantCulture, CultureInfo.GetCulture("en-GB"));
}
}