本文整理汇总了C#中TestRepository.GetTestsByTaskId方法的典型用法代码示例。如果您正苦于以下问题:C# TestRepository.GetTestsByTaskId方法的具体用法?C# TestRepository.GetTestsByTaskId怎么用?C# TestRepository.GetTestsByTaskId使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TestRepository
的用法示例。
在下文中一共展示了TestRepository.GetTestsByTaskId方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Execute
public void Execute(IJobExecutionContext context)
{
using (var testRepository = new TestRepository())
{
using (var codeRepository = new CodeRepository())
{
using (var resultRepository = new ResultRepository())
{
ICompiler compiler = new CSharpCompiler();
var processBuilder = new ProcessBuilder();
var runer = new Runer();
List<Code> codes = codeRepository.ExtractAll().ToList();
codes.ForEach(item =>
{
if (!compiler.TryCompile(item.Text, @"F://test.exe"))
{
resultRepository.Add(new TestDatabase.Entities.Result(item.Id, "compilation error"));
}
else
{
var tests = testRepository.GetTestsByTaskId(item.TaskId).ToList();
for (var i = 0; i < tests.Count; i++)
{
var proc = processBuilder.Create(@"F://test.exe");
string output;
try
{
if (!runer.TryGetResult(proc, tests[i].Input, out output))
{
resultRepository.Add(new TestDatabase.Entities.Result(item.Id,
"out of time on test " + (i + 1).ToString()));
return;
}
}
catch (Exception e)
{
resultRepository.Add(new TestDatabase.Entities.Result(item.Id,
"out of memory on test " + (i + 1).ToString()));
return;
}
if (output == tests[i].Output) continue;
resultRepository.Add(new TestDatabase.Entities.Result(item.Id,
"wrong answer on test " + (i + 1).ToString()));
return;
}
resultRepository.Add(new TestDatabase.Entities.Result(item.Id,
"success"));
}
});
}
}
}
}