I (Selenyum testler için) paralel olarak benim testleri çalıştırmak için aşağıdaki kurulum var:MSTest'te test yürütme sırasında test dışı test yöntemini test olarak nasıl ekleyebilirim?
[TestClass]
public class ParallelTests
{
[TestMethod]
public void TestAllParallel()
{
var testActions = Assembly.GetExecutingAssembly().GetTypes()
.Where(t =>
t.GetCustomAttribute<CompilerGeneratedAttribute>() == null &&
t.GetCustomAttribute<TestClassAttribute>() != null)
.Select(t => new Action(() => RunTest(t)))
.ToArray();
System.Threading.Tasks.Parallel.Invoke(testActions);
}
private static void RunTest(Type test)
{
var instance = Activator.CreateInstance(test);
ExecuteTestMethods(instance);
}
private static void ExecuteTestMethods(object instance)
{
var testMethods = instance.GetType().GetMethods()
.Where(m =>
m.GetCustomAttribute<TestMethodAttribute>(false) != null &&
m.GetCustomAttribute<IgnoreAttribute>(false) == null)
.ToArray();
foreach (var methodInfo in testMethods)
{
methodInfo.Invoke(instance, null);;
}
}
}
benim Jenkins sunucuda test sonucu rapor yalnızca bir test tükendi gösteriyor olsa da bu iyi çalışır. Raporda TestAllParallel()
tarafından yürütülen tüm testleri görmek istiyorum.
bunu yapmak mümkün mü? Belki de çalışma zamanı sırasında MSTest'e bir test olarak bir yöntem eklemenin mümkün olacağını düşünüyorum.
Ben mstest zamanında test eklemek için bir yöntem olduğunu düşünmüyorum nasıl görebiliriz. Testleriniz için ayrı bir trx dosyası yaratabilirsiniz (dosyayı metotlarınızda oluşturarak) ve ardından Jenkins'deki en hızlı eklenti, MSTest'den çıktı olduğunu düşünürdü. –
Belki de test kodu için kod kapsamını kontrol etmeyi deneyebilirsiniz (test edilen kod yerine). Her ne kadar jenkins & mstest'de bunu yapacağımı bilmiyorum. –
Neden tüm testlerinizi kendi başınıza yürütüyorsunuz ve Jenkins sunucunuzu sizin için yapmasını istemiyorsunuz? – silver