- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在使用 Rubberduck VBA 插件。
我想“交付”我的 Excel 应用程序,而不使用引用资料中的 Rubberduck 插件。你是如何做到这一点的?例如,是否可以“隐藏”测试模块而不编译它们?
最佳答案
如果您的测试模块是早期绑定(bind)的(这在开发时是一个好主意!),那么您应该在交付之前删除对 Rubberduck 类型库的引用。
当然,您可以简单地删除测试模块,但这会成为重新导入和导出的烦恼......并且您不想这样做。
您可以按原样交付项目(带有测试模块,但没有对Rubberduck的引用),因为测试模块不会出现在实际实时代码的任何执行路径中:项目不会编译,但它仍然可以正常运行(除非有人尝试调用测试方法..然后将加载测试模块,并且编译器将注意到缺少的库)。
但我的建议是更进一步,后期绑定(bind) AssertClass
实例(以及 FakesProvider
,如果您使用该 API):
Option Explicit
Option Private Module
'@TestModule
'@Folder("Tests")
Private Assert As Object
Private Fakes As Object
'@ModuleInitialize
Private Sub ModuleInitialize()
'this method runs once per module.
Set Assert = CreateObject("Rubberduck.AssertClass")
Set Fakes = CreateObject("Rubberduck.FakesProvider")
End Sub
'@ModuleCleanup
Private Sub ModuleCleanup()
'this method runs once per module.
Set Assert = Nothing
Set Fakes = Nothing
End Sub
随着测试后期绑定(bind),该项目现在将使用包含的测试模块进行编译。当然,调用测试方法会崩溃(除非 Rubberduck 在那台机器上!),但是测试模块不应该位于 VBA 项目的任何执行路径中。
您可以将Rubberduck配置为默认后期绑定(bind)新测试模块:
如果您使用“Permissive assert”(它以类似 VBA 的宽容方式实现类型相等),则您要用于后期绑定(bind)的 ProgID 是 Rubberduck.PermissiveAssertClass
。
一个相对较新的可能配置是“双重绑定(bind)”,它设置新的测试模块如下:
Option Explicit
Option Private Module
'@TestModule
'@Folder("Tests")
#Const LateBind = LateBindTests
#If LateBind Then
Private Assert As Object
Private Fakes As Object
#Else
Private Assert As Rubberduck.PermissiveAssertClass
Private Fakes As Rubberduck.FakesProvider
#End If
'@ModuleInitialize
Private Sub ModuleInitialize()
'this method runs once per module.
#If LateBind Then
Set Assert = CreateObject("Rubberduck.PermissiveAssertClass")
Set Fakes = CreateObject("Rubberduck.FakesProvider")
#Else
Set Assert = New Rubberduck.PermissiveAssertClass
Set Fakes = New Rubberduck.FakesProvider
#End If
End Sub
'@ModuleCleanup
Private Sub ModuleCleanup()
'this method runs once per module.
Set Assert = Nothing
Set Fakes = Nothing
End Sub
像这样配置,您可以轻松地在后期和早期绑定(bind)模式之间切换:
#Const LateBind = True '/False
如果您有多个测试模块,您可以定义一个名为 LateBindTests
的项目级预编译器常量,并同时切换所有 Rubberduck 测试模块的后期/早期绑定(bind)。您可以在“项目属性”中执行此操作(从“工具”菜单中,或在“代码资源管理器”中右键单击您的项目,然后选择“项目属性”) :
(旁注:帮助文件项目属性(没有人使用它,对吧?)被Rubberduck劫持,为项目分配并保留唯一的ID - 更改此值如果不立即保存并关闭将会破坏东西)
关于excel - 如何在没有 Rubberduck TestModules 的情况下交付 Excel VBA 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58770133/
我已经在 Google 页面速度上测试了我的网站,我发现我需要优化我的 css 文件。但在 Google 文档中,仅针对小型 css 文件进行回复。 这是我测试网站时出现的消息: 优化以下内容的 CS
我优化了以下链接的 CSS 代码。但它仍然给出优化 css 传递的消息。 http://fonts.googleapis.com/css?family=Droid+Sans%7CUbuntu+Cond
我有一个用 Clojure 编写的桌面应用程序,它受 JVM 启动时间的影响很大,非常适合 ClojureScript。它作为 JVM 的 jar 文件提供,ClojureScript/JavaScr
我正在创建一个新服务,为此我有一个包含状态字段的数据库条目 (Mongo),我需要根据当前时间更新该字段,例如,开始时间设置为两点几个小时后,我需要在数据库中将状态从 CREATED -> START
我们构建的网站具有公共(public)(非安全)区域和安全(通过 HTTPS 交付)区域,并且我们使用 jQuery 库。 最近我建议我们使用 Google CDN 进行 jQuery 交付。我的一些
我正在尝试将 Varnish 缓存响应分块...(有可能,对吧?) 我有以下情况: 1-缓存很干净,可以使用(服务 Varnish 重新启动) 2-首次访问www.mywebsite.com/page
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 5 年前。 Improve this qu
我正在开发一个数据关键型移动应用程序来向服务器发送消息。为了利用 MQTT 的轻量级特性,KEEP_ALIVE_INTERVAL 保持在最大值 > 60 秒。但我想确保数据包无论如何都能送达。目前我使
我的本地通知有问题:如果设备处于关闭状态或更改手机日期,通知将保留排队并与下一个通知一起触发。为什么? 因为需要非常关心通知的日期..如何保证通知的正确传递? 我们应该把删除过期通知的代码放在哪里
在将第一个有效负载作为 mdm: 发送后,我们能够获得状态为空闲的响应。现在我们要发送一个简单的设备锁负载。我们按照完全相同的过程发送有效载荷,但返回的响应是空白的。 我们正在按照以下方式使用证书:1
我在 Resources\Images 目录中有一个包含大量 Assets (图像)的 .NET MAUI 项目,这些 Assets 应部署到 Google Play 商店。这意味着生成的 aab 包
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 8 年前。 Improve
我记得有人告诉我 gzip 压缩的内容没有缓存在某些浏览器上? 这是真的? 是否有任何其他原因我不应该使用 htaccess 压缩我的内容(页面、javascript 和 css 文件)? 最佳答案
如果我将 .Net Framework 安装文件与我的应用程序一起包含(安装过程由我们自己的技术人员完成),则无需事先安装任何框架即可安装在干净的 Windows(XP SP2/SP3 或 Vista
我已经成功使用 SAXON HE 9.5.1-5 一段时间了。我们正在对平台中的某些版本的组件进行全面升级,其中包括迁移到 Saxon 9.8.0-8使用该版本代码失败。以下内容位于我们的 Sprin
使用页面速度洞察时,我收到此警报 Eliminate render-blocking JavaScript and CSS in above-the-fold content Your page ha
所以我不幸地将我们创建的这个专有 ActiveX 控件嵌入到网页中,以便它从我们的服务器下载代码并在必要时安装。 我们的 ActiveX 需要许多其他文件,这些文件需要与 activex 控件本身一起
我一直在通过 Google 的网站速度测试器运行我的网站 ( https://developers.google.com/speed/pagespeed/insights/ ) 并尝试解决所有发现的问
Google 建议在 head 中使用非常重要的 CSS inline 和内部的其他 CSS . 这在我脑海中提出了几个问题: 如何在两个文件中确定 CSS 的优先级。该页面的所有内容看起来都很重要
所以我通过 Google 的 PageSpeed Insights 运行我的网站它告诉我可以通过延迟加载非关键资源来改进 CSS 交付。特别是它提到了包含很棒的字体: 我想我可以通过简单地将它放在结
我是一名优秀的程序员,十分优秀!