1

プロジェクトにテスト関数がありますUnitAutoTestGeneration:

public static void add_abs_val_x_times(int val_to_add, int x, ref int num_to_add_to)
{
    if (val_to_add < 0)
    {
        val_to_add = -1 * val_to_add;
    }
    for (int i = 0; i < x; i++)
    {
        num_to_add_to += val_to_add;
    }
}

IntelliTest UI で [保存] をクリックすると、次のようになります。

ここに画像の説明を入力

IntelliTest が生成したすべての C# コードを、次の名前の別のプロジェクトに保存しますUnitAutoTestGeneration.Tests

ここに画像の説明を入力

UnitTest1Test.cs(元のプロジェクトを参照してテストする関数を定義しますUnitAutoTestGeneration):

// <copyright file="UnitTest1Test.cs">Copyright ©  2021</copyright>

using System;
using Microsoft.Pex.Framework;
using Microsoft.Pex.Framework.Validation;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using UnitAutoTestGeneration;

namespace UnitAutoTestGeneration.Tests
{
    [TestClass]
    [PexClass(typeof(UnitTest1))]
    [PexAllowedExceptionFromTypeUnderTest(typeof(ArgumentException), AcceptExceptionSubtypes = true)]
    [PexAllowedExceptionFromTypeUnderTest(typeof(InvalidOperationException))]
    public partial class UnitTest1Test
    {

        [PexMethod]
        public void add_abs_val_x_times(
            int val_to_add,
            int x,
            ref int num_to_add_to
        )
        {
            UnitTest1.add_abs_val_x_times(val_to_add, x, ref num_to_add_to);
            // TODO: add assertions to method UnitTest1Test.add_abs_val_x_times(Int32, Int32, Int32&)
        }
    }
}

UnitTest1Test.add_abs_val_x_times.g.cs(生成された IntelliTest テスト コードを含む):

using Microsoft.Pex.Framework.Generated;
using Microsoft.VisualStudio.TestTools.UnitTesting;
// <copyright file="UnitTest1Test.add_abs_val_x_times.g.cs">Copyright ©  2021</copyright>
// <auto-generated>
// This file contains automatically generated tests.
// Do not modify this file manually.
// 
// If the contents of this file becomes outdated, you can delete it.
// For example, if it no longer compiles.
// </auto-generated>
using System;

namespace UnitAutoTestGeneration.Tests
{
    public partial class UnitTest1Test
    {

[TestMethod]
[PexGeneratedBy(typeof(UnitTest1Test))]
public void add_abs_val_x_times130()
{
    int i = 0;
    this.add_abs_val_x_times(0, 0, ref i);
    Assert.AreEqual<int>(0, i);
}

[TestMethod]
[PexGeneratedBy(typeof(UnitTest1Test))]
public void add_abs_val_x_times993()
{
    int i = 0;
    this.add_abs_val_x_times(0, 1, ref i);
    Assert.AreEqual<int>(0, i);
}

[TestMethod]
[PexGeneratedBy(typeof(UnitTest1Test))]
public void add_abs_val_x_times776()
{
    int i = 0;
    this.add_abs_val_x_times(int.MinValue, 0, ref i);
    Assert.AreEqual<int>(0, i);
}

[TestMethod]
[PexGeneratedBy(typeof(UnitTest1Test))]
public void add_abs_val_x_times214()
{
    int i = 0;
    this.add_abs_val_x_times(0, 2, ref i);
    Assert.AreEqual<int>(0, i);
}
    }
}

ただし、左側のテスト パネルのようにUnitTest1Test.add_abs_val_x_times.g.cs、トップ メニュー バーの [テスト] -> [すべてのテストを実行] をクリックし、[テストの実行] をクリックしても、これらの生成されたテストを実行できないようです。UnitTest1Test生成された C# コードを「実行しない」として:

ここに画像の説明を入力

さらに、出力では、何も構築されていないことが示されています。

ここに画像の説明を入力

4

0 に答える 0