-
Notifications
You must be signed in to change notification settings - Fork 12k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cannot debug tests in Karma for projects generated with version CLI 6.1 or 6.2 - no source maps? #12282
Comments
I am afraid that I am not understanding the problem here. I have tried this locally and the breakpoints are working as expected both with and without By default |
So basically what you are asking is to enable sourcemaps by default when running tests? |
Coming from version 1.7.x and below, I figured this was a bug, since in previous versions I'd get Typescript by default. I honestly don't understand what good it is to have compiled JS as the debug source, but that's just my opinion (apart from the fact that one could argue most of the time we're just running the tests and it's probably faster not to generate source maps). But like I've said, if this change was made by design, then I'm simply asking for confirmation that enabling source maps via angular.json for the test configuration doesn't have any negative effects on other uses cases, as I figure there must be a reason for the change? |
…n using karma Closes angular#12282
* refactor(@angular/cli): rename project to workspace and clean up Removed unnecessary fields in interfaces, added some comments. Overall QoL. * fix(@angular/cli): add options in help for architect commands And fix a bug with json schema to Option array. * fix(@angular/cli): only print options once for schematic --help * feat(@angular/cli): add long description and suboption option type * fix(@angular/cli): only add options if theres only one builder configuration * refactor(@angular/cli): remove parseJsonFile and add options to parseJson instead * fix(@angular-devkit/schematics): fix task executor on Windows Before we did not denormalize the paths, but were expecting to get paths as options. * test(@angular-devkit/build-optimizer): also check method metadata * feat(@angular-devkit/build-optimizer): remove constructor __param * feat(@angular-devkit/build-optimizer): correctly identify renamed enums * test(@angular/cli): add third party decorator prod test * feat(@schematics/angular): add CLI 7.x migration schematic * feat(@ngtools/webpack): add `typescript` version `3.0.x` as a peer dependency * build: update repo to use `typescript` `3.0.x` Updated `@angular/<packages>` to `^7.0.0-beta.4` since we need this to be able to run the tests. Due to the `@angular/compiler` in `v6` doesn't support `typescript` `3.0.x`. * feat(@angular-devkit/build-optimizer): update `typescript` dependency to `3.0.x` * build: add `typescript` as `devDependencies` * feat(@angular-devkit/build-angular): add `ignore` option to `assets` object You can now provide an array of globs to `ignore` from copying Closes angular#11850 * feat(@angular-devkit/build-angular): add `ignore` option to `assets` object You can now provide an array of globs to `ignore` from copying Closes angular#11850 * feat(@schematics/angular): let Universal schematic use configurations from build architect * feat(@schematics/angular): add several prompts to ng-new * refactor(@angular-devkit/build-angular): clean up style webpack config Clean up several parts of the styles config and also removed the dependency on `postcss-url` * fix(@angular-devkit/schematics): throw `InvalidCollectionJsonException` when collection file is invalid Closes angular#11818 * docs: fix english * fix(@angular-devkit/build-angular): set the proper type to `fileReplacements` Closes angular#11294 * fix(@angular-devkit/schematics): fix `generate` mangling files containing wide characters Executing a command like `ng generate component my-component` can sometimes lead to mangled Angular module files when inserting the component into `declaration` and adding the import. This happens if the file contains characters that are wider than one byte e.g. a copyright sign or an umlaut. Today it is expected to be able to use two byte long characters in code. The `UpdateBuffer` class operates using Buffer objects which use byte arrays internally. Using text node positions provided by the TypeScript library, these will not match up. This change looks up the textual position inside the Buffer and uses the correct index. Closes angular#7851, angular#7950 * docs: update proxy.md with correct path * fix(@schematics/angular): app shell schematic does not use production configuration Closes: angular#11578 * fix(@schematics/angular): fix path for `ngswConfigPath` during migration `/` will cause an error during lookup `Error: Expected to find an `ngsw-config.json` configuration file * ci: update CI to node 10 * feat(@angular/pwa): support customized workspace configurations with add * Update release.md add note about `latest-versions.ts` * release: v7.0.0-beta.0 * release: v7.0.0-beta.1 * release: v7.0.0-beta.2 * fix(@angular-devkit/build-optimizer): remove deprecated purify plugin * fix(@angular-devkit/build-optimizer): remove deprecated wrap enums check * refactor(@angular-devkit/build-optimizer): remove unused helper function * refactor: pin down all direct dependencies This is so that CLI users get the same direct dependency versions that were tested on the CI. * fix(@schematics/angular): `module` imports paths are incorrect when `flat` option is used Closes angular#12169 * fix(@schematics/angular): use app root to set server paths in options * fix(@angular-devkit/core): allow stat on record host * refactor(@ngtools/webpack): avoid double caching of files * test(@angular-devkit/build-angular): expand polling success threshold polling is highly dependent on CPU and IO; with shared CI machines this can cause high variability * test(@angular-devkit/build-angular): improve resilience of watch rebuilds * ci: add back angular snapshot e2e on master * feat(@angular-devkit/benchmark): add package * test: add AIO benchmark * build: fix tarring packages on windows * build: workaround yarn tgz bug * fix(@schematics/angular): fix app shell schematic failure Fixes angular#10093 * refactor(@schematics/angular): make interaction with architect targets type safe * style: match styleguide catch callback * docs: fix asset input path Closes angular#12219 * fix(@angular/cli): show an error if invalid global config file found Fixes angular#12198 * build: match engines with bazel and CI * refactor(@ngtools/webpack): use async/await where possible * build: use native async/await support Node.js 8.9.4 (minimum supported version for the CLI) contains native async support. * fix(@ngtools/webpack): remove deprecated singleFileIncludes option * feat(@ngtools/webpack): move @angular/compiler-cli to a peer dependency Now that the package is no longer installed globally, it can now properly use peer dependencies without issue. * ci: remove unused unit test code coverage This is not saved anywhere and it currently doesn't support native async/await. * fix(@angular/cli): fix issues in google3 * fix(@schematics/angular): use 'architect' instead of 'targets' until deprecated * test: update to support targets & architect fields * fix(@angular/cli): warn if `targets` is present when using a schematic * build: add support to build JSON schema through bazel The tests verify that the output of the rule is the same as the input, and will error if not (with a call to action). The binary produces the golden output. We have to check the result of the transformation into git because internally we cannot synchronize quicktype into google3. * refactor(@schematics/update): add automated JSON schema generation * refactor(@schematics/angular): automated JSON schema generation * refactor(@schematics/schematics): automated JSON schema interface generation * ci: add missing licenses from quicktype-core dependencies And remove fixed TODOs. * ci: bootstrap-local now prioritizes typescript files over JSON The require() logic by default is not enough; require("file") would pick the json if there are both a file.ts and file.json. This does not show up in prod because js files are prioritized over json, but it does show up in bootstrap because we compile ts in memory and there are no .js file on disk (which require() could potentially see). This is necessary for the schema change because schema.json and schema.ts collides. We should also rename the commands from *-impl.ts to just *.ts (they were named that way because of this conflict). * refactor(@angular/pwa): automated JSON Schema generation * refactor(@angular/cli): automated JSON schema interface generation * ci: move bazel-build to xlarge resource class * ci: build script uses bazel to generate the schemas * build: support for JSON Schemas files in bootstrap-local * build: add JSON Schema .d.ts and .js files to build output * ci: disable bazel in devkit-admin build Replace the build step with a custom JSON schema output parallel to bazel. * release: v7.0.0-beta.3 * build: use specific engines for built packages * build: update pidusage Fixes angular#12022 (comment) * build: add create script to create a new project using local build * ci: generate and publish all commands help in JSON format * fix(@angular/cli): run --help-json now returns a basic help It was throwing an exception about some targets not being available. * fix(@angular/cli): chunk log so output is piped properly Previously the output of some commands with long one-line log would not be drained properly when piping it, causing it to be truncated. * feat(@angular/cli): sort schematics by name in --help-json * feat(@angular/cli): generate --helpJson will remove collection name For the default collection. * feat(@angular/cli): add help for ng-new schematics Before it was missing because we need to load the schematics engine for it. I moved the ng update logic that did this to SchematicCommand. * fix(@angular/cli): add support for all variant of alias field name * fix(@angular/cli): fix support for default values in options * fix(@angular/cli): fix support for hidden options They were showing when they should have been hidden. * ci: remove external BUILD code that should not be internal * refactor(@schematics/angular): replace usage of unknown for any Google3 is still on TypeScript 2.9. * feat(@ngtools/webpack): add support for `traceResolution` Closes angular#8676 * docs: add jsdoc instead of comments * feat(@schematics/angular): update ng-packagr to `4.2.0` * build: update ng-packagr to `4.2.0` * fix(@angular-devkit/schematics-cli): fix `list-schematics` is not printing anything Usage: ``` $ schematics @schematics/angular: --list-schematics $ schematics --list-schematics ``` When no colon is specified, it means that that you are passing a schematic name to be looked up in the default collection. Closes angular#12220 * test: add tests to schematic-cli * refactor: make the cli testable * feat(@angular-devkit/core): `createConsoleLogger` now accepts 2 parameters to add custom `stdout` and `stderr` * refactor: use common type for stdout and stderr * build: add `angular_devkit/core:node` to deps * refactor(@schematics/angular): Parameterize findModule This commit modifies `findModule` to accept custom regular expressions so that a different filename convention for Angular modules is allowed. * feat(@angular-devkit/build-angular): enable sourcemaps by default when using karma Closes angular#12282 * docs: remove `--prod` as it's no longer needed Closes angular#12290 * fix(@angular-devkit/build-angular): fully remove url inlining * fix(@angular/cli): support `--version` option * refactor(@angular/cli): correct implicit returns * refactor(@angular-devkit/build-angular): correct implicit returns * refactor(@angular-devkit/build-optimizer): correct implicit returns * build: remove old monorepo version file * build: remove unneeded gitignore file * build: update nvmrc to use node 10 * refactor(@angular-devkit/build-optimizer): remove unused import purifier * refactor(@angular-devkit/build-optimizer): minor type cleanup * fix(@angular-devkit/build-optimizer): deprecate transform test functions These were not intended to be part of the public API and will eventually be removed completely. * test: remove development purify bin helper * feat(@angular-devkit/build-angular): update webpack dependencies memory leak fix, security vulnerability package updates, hash integrity fix, and other minor defect fixes * fix(@angular/cli): fix schema error `Property targets is not allowed` Closes angular#12192 * feat(@angular/cli): add usage notes to help JSON * docs(@angular/cli): add comments for Command interface * refactor(@angular/cli): remove command type It was really unused. * feat(@angular/cli): add subcommand to options SubCommands are not tied to the option that triggers them. They contain a subset of a CommandDescription interface, with at least a short and long description and usage notes. These are generated from the subcommand schema (e.g. schematics in case of generate). * feat(@angular/cli): add support for parsing enums Options can now contain enumerations of values. * feat(@angular-devkit/core): add enum support to getTypesOfSchema * feat(@angular/cli): remove --help-json and add format to help --help now accepts a value which can be a boolean or a string. If the value is not understood we simply show a message to the user that it was invalid. * fix(@angular/cli): on error finding files, show warning This should not prevent execution, but is useful to know. * build: ignore dist-schema for linting * feat(@angular/cli): if parsing comes accross an obvious error throw it We accumulate errors this way, and throw only once at the end, with messages for all errors. * fix(@angular/cli): do not show stack on argument parse error * release: v7.0.0-beta.4 * fix(@schematics/angular): remove module test (angular#11278) The `module` schematic was generating a useless `module.spec.ts` file. This commit removes such test. Fixes angular#11277 * docs(@angular/cli): Added alias section to each doc for the generate commands (angular#12253) * * fix(@angular/cli): remove helpJson and help-json mentions (angular#12331) * fix(@angular/cli): remove helpJson and help-json mentions * ci: use proper --help=json for creating snapshot * feat(@angular-devkit/schematics): allow workflow impl to define their own sinks (angular#12330) Behaviour for NodeWorkflow should be the same. * fix(@angular/cli): cannot use same target name in when having multiple projects (angular#12327) Closes angular#12320 * ci: add size check of new project production build (angular#12328) * docs: example command to generate library (angular#12334) * ci: fix parallelism for e2e node 8.x job (angular#12341) * feat(@angular-devkit/build-angular): automatically include reflect metadata polyfill for JIT The reflect metadata polyfill is only required by Angular when using JIT. Since it is unanticipated it would be needed when using AOT, including it when using AOT only serves to unnecessarily increase application file sizes. JIT is not recommended for production use. However, if an application uses JIT in production and an alternate reflect metadata polyfill is preferred (core-js/es7/reflect is currently used), then TypeScript path mapping can be used to override the polyfill. As an example, the following will allow the usage of the `reflect-metadata` package in lieu of the default: ``` "paths": { "core-js/es7/reflect": ["node_modules/reflect-metadata"] } ``` * fix(@schematics/angular): remove redundant reflect polyfill * test: update E2E polyfills test for JIT mode * feat(@angular-devkit/build-angular): update license-webpack-plugin Closes angular#11536 * ci: call main function from schematics bin * feat(@schematics/angular): new 7.0.0 migration to remove polyfills See PR angular#12346 for more information. This PR migrates current CLI projects to the new polyfills introduced in that PR. * fix(@angular/cli): suggest windows-compatible typescript install command Specifying version range in single quote doesn't work in windows CMD and it returns: > The system cannot find the file specified. * feat(@schematics/schematics): update tsconfig.json libs to include es2018 Update the lib property in tsconfig.json files to include es2018. * feat(@schematics/angular): update tsconfig.json libs to include es2018 Update the lib property in tsconfig.json files for Angular libraries and workspaces to include es2018. * extended Schematics README regarding templating to include basic info and an example about it * fixed typo in the Schematics README * feat(@angular-devkit/core): support of tsx files in aot mode (angular#11407) * feat(@angular-devkit/build-angular): support of tsx absolute path import (angular#11450) * fix(@angular-devkit/core): fix cannot delete directory (angular#11574) * test: add unit test to cover `subdirs` Closes angular#12143 * docs: initial schematic prompts documentation * fix(@angular/cli): allow global config command outside project Fixes angular#12296 * fix(@schematics/angular): dasherize library package name Fix angular#11017 * fix(@angular/cli): `--verbose` is an unknown option of `serve` Closes angular#11086 * refactor(@ngtools/webpack): use webpack resolver plugin for path mapping * feat(@angular-devkit/build-angular): add profile option to browser builder This should help users send us profile logs for builds that take too long. * fix(@schematics/angular): generate application with projectRoot is provided Closes angular#11925. * docs: add local installation and specific version installation instructions * docs: touching up local installation instructions * docs: npx install information * fix(@angular/cli): relax compatible angular check package location * fix(@angular-devkit/build-angular): fully resolve project modules * feat(@angular/cli): add support for `ShadowDom` as a `viewEncapsulation` value * feat(@schematics/angular): add support for `ShadowDom` as a `viewEncapsulation` value * build: update webpack types * test: update license exceptions * feat(@schematics/angular): add default budget of 2mb/5mb * docs: convert console image to css * refactor: change code to work with TypeScript 3 and add missing models * feat(@schematics/update): add per-project .npmrc file support * fix(@schematics/update): process always-auth and _auth correctly, better support for private repositories * fix(@schematics/update): taking whitespaces around "=" in .npmrc into account * refactor(@angular-devkit/core): adjust rxjs type usage Required for upcoming upgraded to rxjs 6.3 * refactor(@angular-devkit/schematics): adjust rxjs type usage Required for upcoming upgraded to rxjs 6.3 * build: update rxjs to 6.3 * test: update E2E update tests to use built packages * build: ensure @ngtools/webpack uses consistent TS version * refactor(@angular-devkit/build-angular): clean up overriding of options * Disable Autoprefixer Grid * feat(@schematics/angular): Add the option to allow preventing the creation of an application Fixes angular#12216 * fix(@angular-devkit/build-angular): karma builder now serves global styles Closes: angular#11072 * feat(@angular-devkit/build-angular): add progress option to xi18n Add progress option to xi18n. It is passed to the webpack builder. Fixes angular#11667. * docs(@angular/cli): add progress to extractI18n workspace schema * style: improve formatting of spec file * style: remove redundant `async` in tests In component specs only the `compileComponents` is async thus the `async` on `it` are redudnant Closes angular#12161 * fix(@angular/cli): allow empty string arguments * fix(@angular/cli): allow -a=value arguments If a flag is followed by an equal sign, just treat it as a long name. So the example above would translate to --a=value, while -abc=123 would be "-a -b -c=123". Fixes angular#12308 * fix(@angular/cli): numerical flags should not give 0 if empty And numerical positional flags will be ignored. If the value is an empty string, a number conversion would give 0. It is unexpected from the user standpoint ("--num=" has the user expect a string value). * fix(@angular-devkit/build-angular): addresses issue were `deployUrl` has no effect with serve Closes angular#11952 * test: fix tests so it fails when servePath is not working This is due that when targeting an html file, when it doesn't exists it redirects to the root page. So instead use a `js` files to test * feat(@angular/cli): add `--defaults` option to `ng new` Any option with a default value will not be prompted (if a prompt is defined) and the default will be used instead. Closes angular#12084 * feat(@angular/cli): show project being linted Fixes angular#11231 * fix(@schematics/angular): support `Fetch as Google`(Google bot) (angular#11815) * feat(@schematics/angular): look for module in more places (angular#12389) Recursively go through parents of the component and parents of the module name. Fixes angular#7662. Also shows tried directories on failure so the user has more informations. * ci: new true builder as a private package (angular#12390) This is useful for testing things with a builder that always succeeds. In a project, use "devkit-admin build && npm install $DEVKIT_PATH/dist/___builder.tgz" and you have a "@_/builders" package that contains a true builder. This is not published on NPM so I scope this as ci. * feat(@schematics/angular): update to latest versions of `TypeScript` and `Angular` * feat(@ngtools/webpack): add support for `TypeScript` 3.1 * build: update to TypeScript 3.1 * test: add `skipLibCheck` to `type-warning` test Declarations in `3.1` are not valid with TypeScript `2.8` which will cause an error and the process will exit with a non zero code. * docs: sort changelog by feature first, then fixes * feat(@angular-devkit/build-angular): add --reporters option to test It was a regression, and used by enough people on CI. No reason it should be omitted and karma.conf.js only. Fixes angular#11376 * ci: enable size check comments * refactor: remove code that was needed for `eject` * fix(@angular-devkit/build-angular): don't rerun tests on unchanged compilation Fix angular#11880 * release: v7.0.0-rc.0 * feat(@schematics/angular): update `TypeScript` to `3.1` * release: v7.0.0-rc.1 * style: remove trailing whitespace * refactor(@ngtools/webpack): reduce amount of filesystem calls * ci: add count to benchmark and pass index to fn * refactor(@angular-devkit/core): add cache to normalize And a benchmark to show the curve, more or less. * fix(@angular-devkit/build-angular): `ng test` without `reporters` no longer print error Closes angular#12455 * ci: add CONTRIBUTING as a template and various changes Added types from the commit validation script to CONTRIBUTING. Added packages names from the package script to the scope section. Added examples of good commit messages. Also corrected some texts. * docs: add getting started section to README * ci: publish script now checks that master has next tag * ci: publish script now checks version and tag together * style: remove unused locals and imports Closes angular#12435 * fix(@angular/cli): `ng update` remove duplicate `dryRun` in help Closes angular#12423 * fix(@angular/cli): capture CPU profile Replace the v8-profiler dependency with v8-profiler-node8 as the first one doesn't support node 8 and 10, and that @angular/cli support only node 8 and 10. * docs(@angular/cli): how to capture a CPU profile Add documentation on how to generate a CPU profile capture. * build: add v8-profiler typings After some refactoring on the angular/cli init, v8-profiler typing is required in order to fix a no-any lint error. * style: disable no-implicit-dependency v8-profiler We only use @types/v8-profiler, which is a repository dev dependency, and v8-profiler-node8 is a "when needed" dependency. * refactor(@angular/cli): remove v8-profiler typings Remove dependency to the @types/v8-profiler Profiler type as we don't want to depend on it. See angular#12411 (comment) * test: update snapshots TS version * build: add check yarn preinstall script Direct copy of the script from core. * fix(@angular-devkit/build-angular): resolve assets in styles relative to importee Closes angular#12430 * style(@schematics/angular): remove extra whitespace in EOF Closes angular#12426 * refactor(@schematics/angular): cleanup application polyfill comments * refactor(@angular-devkit/build-angular): remove unused html webpack plugins * fix(@angular-devkit/build-angular): only process index HTML if option is used * build: avoid swallowing module not found exception * feat(@ngtools/webpack): support custom logging * feat(@angular-devkit/build-angular): pass logger to ngtools/webpack * feat(@ngtools/webpack): support hostReplacementPaths Fix angular#12197 * test(@angular-devkit/build-angular): add test for type checker replacements * fix(@angular-devkit/build-angular): workaround karma issue See karma-runner/karma#3154 * fix(@angular/cli): `ng update --help` shows `--packages` twice (angular#12470) * refactor: add a better `description` for `packages` * fix(@angular/cli): `ng update --help` shows `--packages` twice Closes angular#12468 * ci: exit with `0` error code when running templates (angular#12473) * docs: fix url typo * ci: exit with `0` error code when running templates * docs: start rewriting docs * refactor(@ngtools/webpack): reduce webpack fs decorator system calls * fix(@angular-devkit/core): record host should stat backing host * refactor(@ngtools/webpack): cache parsed source files * test(@angular-devkit/build-angular): disable flaky poll test * fix(@schematics/angular): tweak the `ng new` routing prompt * fix(@schematics/angular): use proper project root for e2e When creating an application, the project root was always "projects/e2e". This is undesired as it leads to conflicts when creating another app. Fix angular#12491. * release: v7.0.0-rc.2
This issue has been automatically locked due to inactivity. Read more about our automatic conversation locking policy. This action has been performed automatically by a bot. |
Bug Report or Feature Request (mark with an
x
)Command (mark with an
x
)Versions
node: v8.11.4
npm: 5.5.1
ng: 6.1.5 and 6.2.2
Chrome 69.0.3497.92
Windows 10 Version 1803 (OS Build 17134.285)
Repro steps
ng new TestKarmaDebugger
cd TestKarmaDebugger
ng test
Desired functionality
I'd like to be able to debug Jasmine tests inside the Karma runner (via the browser) - in previous versions of Angular CLI, I could click on the DEBUG button in the upper right corner of the initial Karma page, which navigated to Karma's debug.html, that included the source maps from the webpack source, enabling me to debug tests inside the browser.
On the tested 6.x versions, this isn't the case. It seems there are no source maps included when in debug mode? I've tested this with the freshly generated projects and didn't include any other NPM modules. So I'm talking about the default state of a project generated with Angular CLI.
Mention any other details that might be useful
It seems that adding the sourceMap property with the value of true, to the "test" architect node in angular.json, resolves this issue to some extent.
Example snippet from angular.json:
From my observations, it solves the behavior for projects generated with Angular CLI 6.1.x, as I can find the source files under the webpack source map in Chrome, while the situation on a project generated with Angular CLI 6.2.2 is different. When the debug page of Karma is loaded, the source files are under the 'localhost:9876' source map and there is no webpack source map included?
I'm also unable to predict if such a configuration change has any repercussions on running tests when not debugging or when generation code coverage reports, so I'd like some feedback if this is the recommended way of solving the issue?
The text was updated successfully, but these errors were encountered: