首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在中未调用安装/测试&测试被阻塞

在中未调用安装/测试&测试被阻塞
EN

Stack Overflow用户
提问于 2018-11-06 00:56:15
回答 2查看 2.3K关注 0票数 2

我在谷歌上搜索过,没有其他人有这个问题,所以也许只有我一个人。

我设置了一个带有游戏模式单元测试套件的统一测试运行程序。

但是,如果我尝试运行带有安装程序或Teardown的测试,测试将完全不运行(当然,在单击run之后)。我只是得到了一个灰色的圆圈,没有圆木。从字面上说它不运行。

如果我删除属性并手动调用这些方法,一切都会正常工作。

您是否有任何建议,为什么设置/Teardown属性会导致这种奇怪的行为?

下面是一些可以工作并通过/运行测试的示例代码:

代码语言:javascript
复制
public class PlayModeUnitTests
{
    Game game;

    void Setup()
    {
        GameObject gameGameObject = MonoBehaviour.Instantiate(Resources.Load<GameObject>("Prefabs/Game"));
        game = gameGameObject.GetComponent<Game>();
    }

    void Teardown()
    {
        Object.Destroy(game.gameObject);
    }

    [UnityTest]
    public IEnumerator MoveDown()
    {
        Setup();
        GameObject obj = game.SpawnObj();
        float initialYPos = obj.transform.position.y;
        yield return new WaitForSeconds(0.1f);

        Assert.Less(obj.transform.position.y, initialYPos);
    }
}

下面是示例代码,它导致测试没有实际运行,甚至没有给出错误消息:

代码语言:javascript
复制
 public class PlayModeUnitTests
    {
        Game game;
        [SetUp]
        void Setup()
        {
            GameObject gameGameObject = MonoBehaviour.Instantiate(Resources.Load<GameObject>("Prefabs/Game"));
            game = gameGameObject.GetComponent<Game>();
        }

        [TearDown]
        void Teardown()
        {
            Object.Destroy(game.gameObject);
        }

        [UnityTest]
        public IEnumerator MoveDown()
        {
            GameObject obj = game.SpawnObj();
            float initialYPos = obj.transform.position.y;
            yield return new WaitForSeconds(0.1f);

            Assert.Less(obj.transform.position.y, initialYPos);
        }
    }

如您所见,.dll上的绿色复选标记显示测试已经运行,但是套件中的任何实际测试都没有通过或失败:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-01 21:43:43

他们需要公开,错误只是不清楚。

票数 2
EN

Stack Overflow用户

发布于 2022-05-22 23:31:46

我的问题是,当使用[UnityTest]时,拆卸必须具有以下内容:

  • be [UnityTeardown]
  • be public
  • 返回IEnumerator
代码语言:javascript
复制
[UnityTearDown]
public IEnumerator Teardown()
{
  service.Dispose();
  yield return null;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53164381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档