我正在使用istanbul-instrumenter-loader尝试为我的未传输的es6代码生成代码覆盖率报告,虽然一切运行正常,但生成的HTML输出中报告的问题似乎与实际源不一致.
例如:
(当图像被移除)
甲const声明有3后"if语句未覆盖",即使没有这样的语句或线后在所有的任何代码.有时"语句未覆盖"标记在字符串的中间,或对象声明中,或多个语句中等.
这是我的Karma配置文件:
module.exports = function(config) {
config.set({
basePath: '../../',
frameworks: [ 'qunit' ],
files: [
'test/index.js',
// Session tickets
{ pattern: 'test/tickets/*.json', watched: true, included: false, served: true }
],
preprocessors: {
'test/index.js': 'webpack'
},
webpack: {
module: {
rules: [{
test: /\.js$/,
exclude: /node_modules/,
loaders: ['istanbul-instrumenter-loader', 'babel-loader']
},
{
test: /\.vue$/,
loaders: ['vue-loader']
},
{
test: /\.png$/,
loaders: ['url-loader']
}]
}
},
reporters: [ 'coverage-istanbul', 'progress' ],
coverageIstanbulReporter: {
type: 'html',
dir: …Run Code Online (Sandbox Code Playgroud) 偶尔当我使用VS2012在调试模式下启动/调试我的应用程序时,我会得到一个对话框:
<blahblah.exe>触发了一个断点.
它不包含任何其他信息,所以我打破了看看发生了什么.哦,但后来我得到"wntdll.pdb没有加载",没有关于这个问题的其他信息.调用堆栈指向ntdll.dll,此时我的应用程序还没有开始执行.
此时选择continue将使应用程序/调试器像往常一样继续.
这种情况经常发生(大约7次发射中的10次).我正在运行Windows 8(64位)和带有更新1的Visual Studio 2012.
以前我有Windows 7(64位)和VS2010,从来没有遇到过这个问题.此特定项目已从(2010年)创建的版本升级,因此可能是问题的一部分.
有人遇到过这个问题吗?我不知道从哪里开始寻找原因.虽然我正在运行64位Windows,但我应该提到我正在构建一个32位应用程序.
更新: 启用Microsoft符号服务器后,这是调用堆栈的样子:
> ntdll.dll!_LdrpDoDebuggerBreak@0() Unknown
ntdll.dll!_LdrpInitializeProcess@8() Unknown
ntdll.dll!__LdrpInitialize@8() Unknown
ntdll.dll!_LdrpInitialize@8() Unknown
ntdll.dll!_LdrInitializeThunk@8() Unknown
Run Code Online (Sandbox Code Playgroud)
我还应该添加,以防万一,我在代码中的任何地方都没有设置断点.
我正在尝试设置一个Boost.Build .jamroot文件来编译Qt 4.8项目,但它似乎忽略了.ui文件和应该是moc:ed的.cpp文件.我尝试在qt4.jam内部进行探索,添加更多的ECHO:s,但我不确定在哪里看.
例如,似乎uic-generator的run方法没有被调用(init确实),但我认为它应该是.
我的jamroot文件看起来像这样:
import qt4 ;
if ! [ qt4.initialized ]
{
ECHO "oh nooo" ;
}
import cast ;
exe application :
# For example
[ cast _ moccable-cpp : ./src/something.cpp ]
[ glob-tree *.ui : .svn ]
;
Run Code Online (Sandbox Code Playgroud)
我得到的唯一输出是:
>bjam
warn: Unable to construct ./application
...found 1 target...
Run Code Online (Sandbox Code Playgroud)
如果我运行bjam --debug-configuration,qt4.jam会打印出我的Qt安装的所有正确路径.
这是怎么回事?也许它与Qt 4.8不兼容?或者我只是错误地使用它?虽然代码几乎逐字地取自examples/qt下的文件.
我怎么用呢?谢谢你的帮助.
编辑:使用gcc 4.7和http://nuwen.net/mingw.html中的MinGW发行版9.0 ,以及Boost 1.49.0附带的Boost.Build.
我正在尝试隐藏视频元素上的字幕:
我正在使用以下 css:
video::cue {
visibility: hidden;
}
它在 Chrome 中运行良好,但在 Safari 上它只隐藏文本,并且仍然呈现标题背景,如下所示:
我也尝试添加background: none,但没有变化。除了以编程方式修改文本轨道列表之外,我还能如何在 Safari 上隐藏字幕?这可能是 Safari 的错误吗?
我试图从与 Luabind 绑定的方法返回一个 std::shared_ptr,但它似乎无法识别类型。
Luabind 代码:
module(lua)
[
class_<Character, BaseEntity, std::shared_ptr<Character> > ("Character"),
def("createCharacter", &Character::createCharacter)
];
Run Code Online (Sandbox Code Playgroud)
创建字符代码:
std::shared_ptr<Character> Character::createCharacter(Game* gameInstance, const Character::CharacterSetup& characterSetup, string sprite, b2World* world)
{
return std::shared_ptr<Character>(new Character(gameInstance, characterSetup, sprite, world));
}
Run Code Online (Sandbox Code Playgroud)
如果我在 Lua 脚本中调用此方法,则不会返回任何内容,并在那里停止执行。但是,如果我更改方法以返回 Character*,它会按预期工作。一些谷歌搜索告诉我返回一个 shared_ptr 应该不是问题。
我究竟做错了什么?
另外,我有这个代码,所以 Luabind 可以理解 std::shared_ptr:
namespace luabind
{
template <typename T>
T* get_pointer(std::shared_ptr<T> const& p)
{
return p.get();
}
}
Run Code Online (Sandbox Code Playgroud) c++ ×3
bjam ×1
boost-build ×1
css ×1
debugging ×1
ecmascript-6 ×1
html ×1
istanbul ×1
karma-runner ×1
lua ×1
luabind ×1
qt ×1
safari ×1
shared-ptr ×1
webpack ×1
windows ×1
windows-8 ×1