Comments (11)
Interesting, I'm going to guess this is being caused by the usage of require
but I'll take a deeper look by the end of this week
from karma-electron.
I'm using SystemJS and transpiling from TypeScript. Below is my full config:
module.exports = function (config) {
config.set({
basePath: './',
frameworks: ['systemjs', 'jasmine'],
systemjs: {
configFile: 'www/config.js',
config: {
paths: {
"*": "*",
"src/*": "src/*",
"github:*": "www/jspm_packages/github/*",
"npm:*": "www/jspm_packages/npm/*",
"typescript": "node_modules/typescript/lib/typescript.js",
"systemjs": "node_modules/systemjs/dist/system.js",
'system-polyfills': 'node_modules/systemjs/dist/system-polyfills.js'
},
packages: {
'src': {
defaultExtension: 'ts'
}
},
transpiler: 'typescript',
typescriptOptions: {
"module": "system",
"emitDecoratorMetadata": true,
"experimentalDecorators": true
}
},
serveFiles: [
'src/**/*.*',
'www/jspm_packages/**/*.js'
]
},
files: [
'src/**/*.spec.*'
],
exclude: [],
reporters: ['progress'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Electron'],
singleRun: false
});
};
from karma-electron.
I've created a basic repository which reproduces this issue.
https://github.com/timfish/karma-electron-test
I have also noticed that I no longer see the electron window when the tests are running.
from karma-electron.
I've worked out what's going wrong. I don't know what has changed (electron or karma) but the tests are being loaded in an iframe
which don't have access to all the electron apis.
Simply adding the following to my karma.conf.js
file gets it all working again:
client: {
runInParent: true,
useIframe: false
}
Can you override the defaults in the plugin?
from karma-electron.
By the way, I think require
can be fixed by setting NODE_PATH
.
electron/electron#2414
from karma-electron.
Thanks for your work on this so far
This plugin doesn't configure Karma in any way -- we force the useIframe
convention via documentation:
https://github.com/twolfson/karma-electron/tree/5.1.1#getting-started
While runInParent
might work, I feel like it could lead to undesired edge cases (e.g. continuous runs could have leaks between tests). I would like to leave this issue open so we can fix the iframe
scenario
The linked Electron issue, electron/electron#2414, states NODE_PATH
is a way to fix absolute node_modules
(e.g. require('underscore')
) but there is no fix for relative node_modules
(e.g. require('./utils')
) so we still need to overwrite require
from karma-electron.
Starting at my attempt to reproduce the issue
from karma-electron.
Our repository dependencies seem to have process.type
defined as renderer
. That's:
"electron": "~1.3.3",
...
"karma": "~1.1.0",
Going to try out your repo now to see if we can reproduce from that. Then we'll binary search for the source
from karma-electron.
While cloning/installing dependencies for the repro repo, we verified that latest Karma and Electron show process.renderer
(albeit console.log
stopped working so we need to look into that...):
"electron": "~1.6.2",
...
"karma": "~1.5.0",
Update: console.log
was caused by log level changes in Karma karma-runner/karma#2540
from karma-electron.
Cool, we got a successful error reproduction with the repo you provided
from karma-electron.
Okay, we have figured out the source of the issue. It's due to missing the required configuration from the README. We missed that during the initial bug report. To repair the issue, add the following to your karma.conf.js
:
preprocessors: {
'**/*.js': ['electron']
},
client: {
useIframe: false
},
Reference documentation:
https://github.com/twolfson/karma-electron/tree/5.1.1#getting-started
from karma-electron.
Related Issues (20)
- How to use with karma-babel? HOT 27
- `electron` did show not nothing happen then HOT 1
- Can't import nodejs modules in an angular-cli project (Typescript) HOT 1
- Errors without stack traces coming from karma-electron? HOT 5
- running with ndb for debugging? HOT 2
- Unable to open Electron window using --show HOT 3
- Electron 5 nodeIntegration HOT 12
- Custom launcher `require` mechanism doesn't work HOT 4
- Module paths are messed up HOT 5
- Error: Karma plugin is meant to be used from within Angular CLI and will not work correctly outside of it HOT 1
- How to configure NODE_PATH for the Electron instance? HOT 24
- [feature] option like 'require', but for renderer processes. HOT 1
- Karma times out when using Electron 9 and client.useIframe = false HOT 20
- Non-context aware native modules in renderer will cause specs to error HOT 3
- [questions] Is Electron 12 supported? HOT 16
- electron V12.0.4---------require is not defined HOT 3
- ES Modules HOT 2
- "require is not defined" after update to karma-electron 7 / electron 12 HOT 12
- Regardless of the `browserWindowOptions.show` value, a window always opens. HOT 12
- sqlite3 stalls with nodeIntegration true contextIsolation false HOT 12
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from karma-electron.