小编Dou*_*ugc的帖子

指定XmlRootAttribute时XmlSerializer性能问题

我目前有一个非常奇怪的问题,我似乎无法弄清楚如何解决它.

我有一个相当复杂的类型,我正在尝试使用XmlSerializer类进行序列化.这实际上运行正常,类型序列化正确,但似乎需要长时间这样做; 大约5秒钟,具体取决于对象中的数据.

经过一些分析后,我已经缩小了问题 - 奇怪的是 - 在调用XmlSerializer.Serialize时指定一个XmlRootAttribute.我这样做是为了将从ArrayOf序列化的集合的名称更改为更有意义的东西.一旦我删除参数,操作几乎是即时的!

任何想法或建议都会非常好,因为我完全被这个问题所困扰!

.net c# xml performance xml-serialization

18
推荐指数
2
解决办法
7087
查看次数

单元测试从线程发射的事件

我有一个问题单元测试一个类,当一个线程启动并完成时会触发事件.违规来源的简化版本如下:

public class ThreadRunner
{
    private bool keepRunning;

    public event EventHandler Started;
    public event EventHandler Finished;

    public void StartThreadTest()
    {
        this.keepRunning = true;
        var thread = new Thread(new ThreadStart(this.LongRunningMethod));
        thread.Start();
    }

    public void FinishThreadTest()
    {
        this.keepRunning = false;
    }

    protected void OnStarted()
    {
        if (this.Started != null)
            this.Started(this, new EventArgs());
    }

    protected void OnFinished()
    {
        if (this.Finished != null)
            this.Finished(this, new EventArgs());
    }

    private void LongRunningMethod()
    {   
        this.OnStarted();

        while (this.keepRunning)
            Thread.Sleep(100);

        this.OnFinished();
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我有一个测试来检查Finished事件在LongRunningMethod完成之后如下所示:

[TestClass] …
Run Code Online (Sandbox Code Playgroud)

.net c# multithreading unit-testing thread-safety

7
推荐指数
1
解决办法
3675
查看次数

单元测试是否适合BPM开发?

我目前正在开发一个大型BPM项目,该项目使用名为Process 360的Global 360 BPM工具集.只是为了给出一些背景知识.这个产品就像很多其他BPM解决方案一样,你设计了多个"流程图",它们定义了你试图建模的特定业务流程的流程,每个流程图由连接在一起的多个任务节点组成,它们执行特定的功能(调用网络服务等).

目前,我们在版本的QA阶段遇到了一些相当严重的问题,因为工具集没有提供任何方法来自动测试流程图路由.因此,当开发大型复杂流程并将其移交给我们的测试团队时,通常会出现大量问题.虽然显然你期望从质量保证中得出一些问题,但如果我们有一些我们可以用来构建的自动化测试框架,我无法感觉到在开发过程中会发现很多错误等等.一组单元测试,证明了过程图中的各种路径.

目前,唯一真正的开发测试更类似于开发人员执行的功能测试,每个测试用例都记录为一组手动步骤.这种方法的问题在于开发人员手动运行非常耗时,因此,也相对容易出错.也; 因为我们的计划通常非常紧张,所以通常不会经常执行测试以及早发现问题.

正如我前面提到的; 当前工具集没有提供执行此类自动化测试的方法.这让我想到了为什么?作为整个BPM场景的新手,我的假设是这只是产品中缺乏的一个功能,但我也想知道"单元测试"是否传统上不是在BPM世界中完成的?也许它只是不适合这种工作?

我有兴趣知道是否有其他人遇到过这类问题,还有什么 - 如果有的话 - 可以做些什么来改进.

unit-testing business-process-management

5
推荐指数
1
解决办法
2637
查看次数