问题标签 [isolation]

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.

0 投票
1 回答
742 浏览

database - 在编码的 UI 测试中使用 Microsoft.Fakes 框架

我正在为我的 Web 应用程序进行编码 UI 测试。试图隔离存储库方法调用,就像我在单元和集成测试中所做的那样,即使用 Microsoft.Fakes 框架。但是对于 UI 测试,Fake 似乎不起作用,因为仍然调用真正的方法而不是 shim。如果没有隔离 UI 测试会影响数据库(例如在测试注册过程时添加新用户),从而使其不可重用。所以想知道是否可以伪造/模拟这些方法并避免在每次我需要运行那些编码的 UI 测试时设置测试数据库和测试网站。

没有找到与此问题相关的太多有用信息,因此将不胜感激。

如果需要,这里是一个非常简单的示例的链接: https ://www.dropbox.com/s/m6les7pmto14njq/TestCodedUITest.zip 这是一个带有一个类库的 VS 2012 解决方案(包含一个带有方法的类,它只是抛出异常),一个 Web 应用程序(包含一个带有一个按钮的页面,它调用上述方法),最后一个编码的 UI 测试包含该方法的 shim 并简单地打开 IE,导航到页面并单击按钮。

0 投票
1 回答
2176 浏览

php - 当我的 LinkedIn 公共个人资料页面作为 HTML 包含在 DIV 中时,它会接管我自己的 jQuery,包括我该如何阻止它?

我无法处理来自 LinkedIn 的整个会员资料 auth thingy,我只想将我们的公开资料放到我们网站上的资料部分:

我可以使用 php 包含来执行此操作,一切都很好,除了它破坏了我的页面上已经存在的 jQuery,因此选项卡及其内容不起作用。

我怎样才能隔离LinkedIn HTML refs,只影响它所在的​​这个名为配置文件的DIV ,从而仍然让我的选项卡正常工作?

目前它也影响全局 CSS。

这是根本不起作用的 iframe 代码,只是一个空白框:

编辑 3

所以这是直接从linkedin站点复制的api页面,其中包含我的api密钥号,这给了我这个错误:

在我看来, ' 正在打开或关闭一些它之后无法读取的东西......在dreamweaver中,除了第6行之外,该行没有语法错误或任何东西,其中的关键是有一个使没有意义...一开始的数字 5 是红色的,但是如果我从下往上构建它,我可以让 Robbie Miller 出现,但是一旦我构建了它在 JS 中要求的配置文件 div,它就会这样做`

0 投票
1 回答
897 浏览

.net - 运行多个相互独立的 WebBrowser

我有一个用 C# 4.0 开发的 Windows 应用程序,我在其中使用多个 WebBrowser 控件,其中所有 WebBrowser 加载相同的网站 URL 并通过在文本框中设置搜索值并单击搜索按钮来执行某种搜索。

所有的网络浏览器都应该一次搜索不同的关键字。当每个单独运行时它们都可以正常工作,但是当它们一起运行时,它们都在搜索相同的关键字而不是不同的关键字!并且关键字不是第一个/最后一个;这是一个随机选择的。我已经在 DocumentCompleted 中实现了代码。

我相信网站本身正在识别首先搜索的关键字之一并将其设置在所有 WebBrowser 窗口中。有没有办法单独和并行运行所有这些 WebBrowser,以便每个“会话”不会影响另一个?

0 投票
1 回答
138 浏览

mongodb - 产生锁可以打破查询隔离吗?

Mongo 文档讨论产生锁的查询以避免阻塞其他操作。Mongo 是否会产生从读取到写入的锁来改变读取结果?

假设我有文档{x:1}, {x:2}, {x:2}, {x:1}并且正在阅读find({x:2})。假设第四个文档不在工作集中,所以 Mongo 页面错误,将update({x:1}, {x:2}, {multi: true})锁交给find. 该查找现在将包括第四个文档,但省略了第一个文档。Monogo 是这样工作的吗?

0 投票
5 回答
699 浏览

linux - 构建环境隔离和文件系统差异

好吧,所以在第 n 次尝试追踪各种软件的依赖关系并复制各种人为所有不同的 Linux 发行版所做的工作之后,我想知道是否有更好的方法来捆绑各种软件到一个 .rpm 或 .deb 文件中以便于分发。

我目前的设置是各种工具的科学怪人,但主要是 Vagrant 和 libguestfs(从在 Fedora 中运行的源代码构建,因为实际上没有一个发行版附带它virt-diff)。以下是我目前遵循的步骤:

  1. 使用 Vagrant box 或通过 live CD 创建一个基本操作系统。
  2. 导出.vmdk并调用它base-image
  3. 旋转上一个图像的精确副本并前往城镇:使用包管理器或其他方式来下载、编译和安装我需要的所有部分。再次导出.vmdk并调用它non-base-image
  4. 使两个基本镜像都可用于具有 libguestfs 的 Fedora 来宾操作系统。
  5. 用于virt-diff区分两个图像并将该数据转储到名为diff.
  6. 运行几个 ruby​​ 脚本以将其diff转换为另一种格式,其中包含我需要的信息,并且没有我不喜欢的/var.
  7. 运行另一个脚本以生成guestfish带有一堆命令的命令脚本copy-out
  8. 运行guestfish脚本。
  9. 运行另一个脚本来重新生成符号链接,diff因为guestfish不能这样做。
  10. 将生成的文件夹结构转换为 .deb 或 .rpm 文件并发布。

我想知道是否有更好的方法来做到这一点。你会认为会有,但我还没有弄清楚。

0 投票
2 回答
389 浏览

locking - 需要基于 Cassandra 的用例的设计和实现输入

我打算将来自商业网站的大批量订单交易记录存储到存储库(这里必须使用 cassandra,这是我们的数据库)。让我们将此组件称为commerceOrderRecorderService。

问题的第二部分是 - 我想处理这些订单并推送到其他下游系统。这个组件可以称为batchCommerceOrderProcessor。

commerceOrderRecorderService 和 batchCommerceOrderProcessor 都将在 Java 平台上运行。

我需要对这些组件的设计提出建议。特别是下面的:

commerceOrderRecorderService

  1. 考虑到性能和可扩展性,他设计色谱柱的最佳方式是什么?我是否应该将整个订单(复杂实体)存储为单个 JSON 对象。订单属性没有搜索要求。我们至少可以等到它们被批处理器处理。考虑 - 单个订单可以包含许多子项目 - 在处理时,每个子项目都可以以不同方式完成。为这种数据结构设计列可能是一种矫枉过正

  2. 什么应该是关键,因为数据量会很高。假设在高峰期每秒进行 10 次交易。在 cassandra 中创建此类事务数据的任何库或最佳实践?TTL也能有效使用吗?

batchCommerceOrderProcessor

  1. 应该如何检索行进行处理?
  2. 如何确保批处理器的多线程实现(也可能在多个节点上运行)将具有行级隔离。也就是说,没有两个实例会同时读取和处理同一行。没有重复处理。
  3. 如何在一段时间后清除数据,同时对压缩等 cassandra 进程友好。

欣赏设计输入、代码示例和库指针。谢谢。

0 投票
0 回答
70 浏览

linux - 如何在 linux 上隔离旧版本的 chrome

我需要在我的 ubuntu saucy 上运行 chrome 25 来测试 Web 应用程序。我不想替换我当前版本的 chrome,并且想知道是否有一种简单的方法来隔离程序?我在 Chromebook 像素上的 chroot 中运行 ubuntu,所以不需要 kvm。

0 投票
1 回答
856 浏览

python - Python中的进程隔离

我知道使用该subprocess模块来隔离可能出现段错误的功能。这有效:

我想弄清楚的是为什么multiprocessing没有相同的效果。这似乎不起作用:

这不是也创建了一个独立的流程吗?我在这里缺少一个核心概念吗?

背景:我正在隔离一个大型第三方 C 库以防止出现段错误。我知道处理段错误的最好方法是修复它们,但是这个库真的很大。

0 投票
1 回答
1477 浏览

java - Spring事务隔离不起作用

我正在制作一个非常简单的示例来测试 Spring 隔离。我有 2 个非常相似的 Schedule 课程:

另外,我有 2 个非常相似的服务类:

运行这段代码后,我可以看到当两个事务同时执行时,两个事务都从数据库中获取相同的值。因此,他们忽略了对另一个的修改。我想这是事务隔离中的错误:

这里的 credits 值应该是 10

在此之后,由于两个进程没有同时执行,因此计算开始正常:

我正在使用 MYSQL,这些是我的任务和事务配置:

出于某种原因,我的默认隔离级别是null。我从这个得到它:

因此,我尝试更改这两个服务的隔离级别:

结果仍然是错误的。

你知道为什么会这样吗?

提前致谢。

0 投票
2 回答
1025 浏览

python - 将函数与运行时隔离

我不知道怎么称呼它,如果有人能想到更好的标题,请告诉我,我会重命名这个问题。

这不是现实生活中的例子,但如果我能解决这种情况,我会在更大的项目中使用它。假设我必须像下面描述的那样做,我不能改变这个想法,我需要找到适合它的解决方案。目前我不允许展示原始项目的更多细节。

主意:

所以,假设我正在基于 YAPSY 插件创建类似 cron 的东西。我想将插件存储在某个目录中,有时我的守护进程会从该目录中收集所有插件,调用它们的方法并再休眠一段时间。这些插件应该能够访问一些单例,它将存储一些数据,例如插件使用的 URL 等。我还在同一进程中运行 TCP 服务器,它将修改这个单例,所以我可以在运行时自定义行为。TCP 服务器应该对单例具有读/写访问权限,并且插件应该具有只读访问权限。可能有许多单例(我的意思是,许多类表现为单例,一个类的实例不多,呃)插件可读并且可以由 TCP 服务器修改。调用插件方法时会在调用它们之前生成一些值,

问题:

如何授予对插件的只读访问权限?我想要完全隔离,所以如果singleton有字段x,它是对象,那么singleton.x(like singleton.x.y) 的字段也应该是插件的只读字段。只读意味着插件应该能够修改这些字段,但它不会对运行时的其余部分产生任何影响,因此当插件方法返回时,单例(及其字段和它们的字段等)应该与在运行插件方法之前,所以它不是真正的只读。此外,插件可能以并发方式运行,并释放 GIL 一段时间(它们可能有 IO 操作,或者只是使用 time.sleep())。

- 编辑 -

解决方案必须是多平台的,并且至少可以在 Linux、Windows 和 MacOS 上运行。

- /编辑 -

方法:

  1. 我可以尝试在单例方法中检查堆栈以查看是否有任何调用者是插件,如果是,则存储任何修改字段的原始值。然后,在插件方法调用之后,我将使用函数 restore() 将单例恢复到运行插件之前的状态。

  2. 我可以尝试在另一个进程中运行插件方法,使用多处理,将所有单例传递(很容易做到,通过使用元类来跟踪所有这些,并在新进程中重建它们,或者在某处显式存储单例)到子进程。

  3. 我可以尝试将globals()and包装locals()到一些dicts 中,这将执行与第 (1) 点类似的技巧(恢复原始值),或者将深度复制所有全局变量和局部变量,并exec使用插件方法的代码(而不是字符串,我知道这是不安全的)。

为什么上面的方法不起作用?

(1):堆栈检查通常是错误的,我想说在这种情况下是非常错误的。此外,每次调用后恢复变量可能会非常昂贵,因为插件会进行许多修改。此外,插件方法可能以并发方式运行,因此我需要在每次发布 GIL 时恢复原始值,并在获取 GIL 时恢复插件范围的值 - 这会造成很大的伤害(你能想象实现这个吗?在这一刻,我不能,我对此并不感到抱歉)。

(2): YAPSY 插件不可挑选,因此我无法将它们发送到子进程。

(3):exec()不会执行带有自由变量的代码,它看不到调用它的范围,所以我需要找到插件函数的所有自由变量(我会使用包装器,在运行时生成,像这样:

并通过no_args_plugin_call.__code__) 并将它们存储在 Wrapped 中locals()。此外,整个环境的深拷贝将与(1)中一样昂贵。

PS。“字段”是指“属性”,因为我(不幸的是)在 Java 等方面长大。

聚苯乙烯。如果您听说过任何类似于 YAPSY 的插件系统(它必须具有所有功能并且是轻量级的)并且会生成可挑选的实例,那对我来说就足够了;)