问题标签 [effort]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 无法在 Effort 框架的单元测试中使用现有数据库
我正在尝试使用托管在 Azure SQL 中的数据库以及Entity Framework 6 上的Effort框架编写测试。
执行以下代码时,会抛出异常:
执行中抛出异常Count()
:
Effort.Exceptions.EffortException:尝试初始化“表”表的内容时出现未处理的异常---> System.ArgumentException:不支持关键字:“数据源”。
EffortProviderConfiguration.RegisterProvider()
替换为 app.config 设置时会引发相同的异常。
当使用完全相同的连接字符串创建UsersDbContext
它时,它会成功并且数据是可访问的。此外,使用 Effort 持久或瞬态模式创建上下文,无需连接字符串,也可以很好地工作。
应该做些什么来初始化与真实数据库中现有数据的连接?
c# - Effort Framework 无法识别实体模型架构
我有一个 Sybase ASE 数据库的实体模型,我正在尝试使用Effort Framework为其创建单元测试。我可以在主项目和单元测试项目中使用实体模型访问数据库,但是当尝试使用 Effort 创建内存数据库时,出现异常。
单元测试项目中的问题代码
异常详细信息:(System.Data.MetadataException)
堆栈跟踪
在查看了 Entity 制作的 .csdl 和 .ssdl 文件后,我相信我找到了导致问题的字段。
固态硬盘
CSDL
我尝试从 SSDL 字段中删除 Precision 属性,但仍然收到相同的错误。(即使它确实有效,重新生成模型时更改也可能不会持续存在)
任何人都在思考导致异常的原因以及我应该如何解决它?
c# - 将 Effort 与 Entity Framework 6 一起使用的正确方法是什么?
我正在尝试使用带有 Entity Framework 6 的 Effort 数据提供程序来获得一些测试代码。我正在尝试做的似乎应该是绝对最简单的用例,但我就是无法做到工作。
这是我的 DbContext 类:
POCO 实体定义为:
该[FitsKeyword]
属性是我定义的自定义属性,不应该与实体框架有任何关系。
在我的单元测试中,我这样设置数据连接,如 Effort 快速入门指南中所示:
一旦我在 DbSet 上使用任何 LINQ,我就会收到愚蠢的无意义错误消息。例如,当我将我的存储库传递给这个简单的代码时:
当我运行此代码时,我得到:
现在这是令人麻木的简单 LINQ 代码,我在这里缺少什么?
sql-server - 在没有实际 SQL Server 数据库启动和运行的情况下,我将如何配置 Effort Testing Tool 来模拟 Entity Framework 的 DbContext?
我们团队的应用程序开发涉及使用努力测试工具来模拟我们的实体框架的 DbContext。但是,似乎 Effort Testing Tool 需要查看应用程序使用的实际 SQL Server 数据库,以便模拟我们的实体框架的 DbContext,这似乎违反了正确的单元测试原则。
原因是为了通过模拟与数据库连接相关的任何东西(例如实体框架的 DbContext)来对我们的应用程序代码进行单元测试,我们永远不需要数据库来启动和运行。
在没有实际 SQL Server 数据库启动和运行的情况下,我将如何配置 Effort Testing Tool 来模拟 Entity Framework 的 DbContext?
* 更新:
@gert-arnold 我们使用实体框架模型优先方法来实现后端模型和数据库。
以下摘自测试代码:
“name=NorthwindModel”与我们的 edmx 文件有关,该文件包含有关我们的数据库表及其对应关系的信息。
如果我通过像以下代码行那样建立连接来删除“name=NorthwindModel”,我会收到一条错误消息,指出它需要一个参数:
你能解释一下上述代码应该如何重写吗?
database - 将 Effort(EF 测试工具)与计算列一起使用
我有许多直接访问数据库的集成测试——创建测试先决条件对象——执行测试然后清理——但是我习惯于在内存中尝试相同的方法。
我刚刚在我的项目中使用了Effort,它很容易工作。但是,我遇到了一个我一直在尝试但无法解决的问题。
我需要填充虚拟数据的表之一 - 作为测试先决条件 - 包含一个计算列(nvarchar,非空)。对于测试的范围,我真的不关心该列的值 - 但即使我尝试插入虚拟数据,我的数据也会被忽略,然后我会遇到错误:
在我的测试中,我使用与实际代码相同的 edmx 文件。这使我无法不断更新 edmx 副本。
有没有一种方法可以强制测试更新 edmx(在运行时),以便该列是可为空的非计算列?[覆盖 OnModelCreating] 还是有办法插入默认值(此列的任何内容)以停止此错误?[覆盖 SaveChanges]
我目前尝试了以下方法:
- 使用 .Attach() 而不是 .Add() 附加对象
- 添加后将 EntityState 设置为 Unchanged
- 通过 Entry.OriginalValues 强制值 [此值,因为实体处于已添加状态]
编辑:
我尝试覆盖OnModelCreating方法,但无济于事,因为这是 DB-First。
c# - Effort.EF6 的空间 DbGeography 提供程序异常 [找不到可用的空间提供程序。]
我正在使用 EF6 开发应用程序,我决定将 System.Data.Entity.Spatial.DbGeography 用于我的位置,如下所示
当我运行测试时,出现以下错误
PS:我正在使用Effort进行测试。
任何建议都会有所帮助,谢谢。
2015 年 3 月 4 日编辑:
错误在于努力。它不支持空间属性 [DbGeography] 我正在寻找一种解决方法,我将在解决问题时发布。
c# - 努力单元测试:参数“xmlReader”无效
我目前正在尝试使用“Effort”框架(http://effort.codeplex.com/wikipage?title=Tutorials&referringTitle=Home)对实体框架的上下文类进行单元测试
如果我的单元测试项目有两个包含方法使用工作的类,那么我会收到以下错误:
参数“xmlReader”无效。必须提供至少一个 .ssdl 工件。
似乎在不止一个类中使用不止一种方法会导致错误。我宁愿不在一个类中拥有我所有的单元测试功能。
测试运行的代码:
App.Config 包含以下实体连接字符串:(已删除敏感数据)
任何帮助,将不胜感激。
entity-framework - 有没有办法为nmemory(内存数据库)使用sql分析器
我正在使用带有 Effort 的实体框架,它使用 NMemory 进行测试,而不会产生实际的数据库副作用。有什么方法可以查看发送到 nmemory 数据库的 sql 吗?
编辑: 感谢@Gert_Arnold,我一直在寻找 DbContext.Database.Log。不幸的是,我的输出如下所示。任何人都可以对此发表评论吗?我假设我得到这些空条目而不是我的 sql。
c# - 使用 Effort.EF6 迁移?
我正在使用 EF6,我现在正在为我的聚合设置一些测试。我决定使用 Effort.EF6,因为我希望无需安装整个数据库引擎即可运行这些测试。
我的 DbContext 使用迁移和插入一些数据的种子方法。Effort.EF6 可以利用它还是我应该使用 Effort 的播种数据方法?
entity-framework - 使用计算值对实体框架 6 进行单元测试
使用代码首先使用努力 EF6 不会填充计算值。我有一个计算的日期时间字段(FechaCreacion)。如何在 Effort 中模拟它,以便在 saveChanges() 之后填充 DateTime.Now ?
这篇文章Using Effort (EF Testing Tool) with Computed Column is DB First 而不是 Code First 作为我的例子,但似乎也没有答案。
此值在 SQLServer 中计算为 GetDate()
在 sql server 中运行良好,但是在单元测试中使用 Effort 时,该字段获取空日期值。